找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3098|回复: 0

Python创建删除文件-----------我的第一个Python脚本

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
* d3 ?8 }' Q/ H: D; A6 S6 O! C$ y很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
9 V- D8 L, T& c, u8 I( ?% w3 S; ?% [
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:3 s% |+ I8 @! R' K- m" a2 \

2 Q: E1 z7 n. ~4 ^$ K' B: k2 c2 c6 j
% x/ Z* p  O2 {/ o* k9 y! w" h, n- O7 s: a
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。& l3 A3 s1 B% I1 a/ R# X
, s- Y, F% ^( Y! T2 y% h" w2 W2 S
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。1 @* F3 O( B" r- `* F

4 z7 A1 Z% M2 _# M0 f  \2 a并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
0 r" J3 ?9 M3 ^4 c
- [1 k3 W4 S* I9 V9 ]$ T差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。9 F) f# R1 @, J$ S  V0 Y& x) a
) L% g' [/ I9 c/ o  L" T4 I
Python代码如下:$ n0 ?9 r* B, ]( G3 d+ t0 T8 G: B

, T5 r* }! T6 j' o* S复制代码- L( Z- _2 T0 ?8 a! t, F7 {$ }
import os
' M+ W& J6 b% G8 x. gdirectory = "E:\\学习日志\\"
! B# r/ C$ s1 }4 O% O3 p7 \os.chdir(directory) # 改变当前工作目录
- y- f. N: D: ecwd = os.getcwd() # 查看当前工作目录
8 d( t) |, H( n' Wprint("--------------current working directory : " + cwd + "----------")6 L6 @* e" V& P& d* }- h- k
! U5 w$ z2 |6 Z$ F; x
def deleteBySize(minSize):
, t# n) A. }+ f& e' O, d    """删除小于minSize的文件(单位:K)"""2 P( p2 f3 z  k5 C, s5 c3 T
    files = os.listdir(os.getcwd()) # 列出目录中文件
, o  N/ ?& _: g! @    for file in files:
1 l1 t) f! G2 j: j$ q    ##    print file + " : " + str(os.path.getsize(file))
8 ]4 n7 s- N; q& e: M) j        if os.path.getsize(file) < minSize * 1000:
0 W) u" a7 G0 P. J5 @/ i+ ^1 d            os.remove(file)
! D0 v$ e) ]& Z9 f/ \2 y            print(file + " deleted.")* s! @' Z3 F5 {7 P
    return5 g( d) g- S6 Q/ x* Y" K
  W8 C. p" R5 v5 E! f1 g) S
def deleteNullFile():
$ p  ?$ ?2 [! ^; r8 H    '''删除所有大小为0的文件'''+ w' E( I" `; H' Z; R  e/ ~; w, U* x
    files = os.listdir(os.getcwd()) # 列出目录中文件7 j! V+ n3 z, T- l2 E
    for file in files:
7 D2 d' C2 d, o0 z7 W" f. Z2 Z        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0& U' n$ q0 q' Z/ Z, D
            os.remove(file)7 R! y3 h" V$ ?
            print(file + " deleted")2 W7 p$ E9 F( H- n) V4 w
    return
4 s% }* `4 {( P
6 Y; t5 Z; o! D: N1 @1 @def create():% k, V( ~# h3 R+ \, K3 X$ k
    '''根据本地时间创建新文件,如果已存在则不创建'''
* ?$ f  t0 m9 |# c. R    import time
7 m5 R& G5 A2 V6 E( B    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出0 R) K, f' T' i4 A
    t = time.strftime('%Y-%m-%d',time.localtime())
2 v# [. q3 K" e' F2 S* k    suffix = ".docx"2 U) H) I9 _* ^
    newFile =os.getcwd() + "\\" + t + suffix
0 a# g7 G3 R3 l    if not os.path.exists(newFile):
# j2 I* p9 A- o' ~        f = open(newFile,'w')( ^- U) `1 X! r' k
        f.close()
. j1 {( }9 x' W& l        print newFile + " created."
7 k+ Z1 D0 p  R, n, t7 @    else:
/ X# u2 g6 u/ \5 ?/ H        print newFile + " already exist."
- P& l7 W% f, a1 z! T7 `7 s4 X    return
5 D" y7 l1 b/ Q4 X* d: A$ p, j/ b: d/ K$ O) q5 k( j2 S
hint = '''funtion :
3 `7 E1 d* i0 I$ a6 Z        1    create new file" F$ e% h* d: U; W: [- L) v( B# t
        2    delete null file- \% F# |6 Q: |4 U# f1 F! ]
        3    delete by size/ V$ t; B8 l3 U3 G) d
        q    quit\n
% x4 T! A/ P$ c% `' Nplease input number: '''" K  v3 F% p2 s7 A) g  J
while True:7 S( R  m! [6 `2 f0 ^& K; f) u
    option = raw_input(hint)
/ K& q; w. s8 T5 Y+ L    if cmp(option,"1") == 0:5 B" e- h9 k8 Y, p5 W7 r
        create()% T9 e! k2 x  m6 U5 B
    elif cmp(option,"2") == 0:
5 W3 N* P( _; |! {; ^3 r, Z6 F        deleteNullFile(). g4 F3 A- m! v  {- P
    elif cmp(option,"3") == 0:
  y3 f$ R; P1 H' O. O& K        minSize = raw_input("minSize(K) : ")1 A$ ?0 X# J0 s: s5 a
        deleteBySize(minSize)
* J8 e3 J8 i: y; |    elif cmp(option,"q") == 0:
# R- U. N- I7 s) z2 B; z8 a; l        print "quit !"9 k! q9 f/ c0 _% p* z4 P/ G
        break7 P2 G7 E" S2 B1 U  V
    else:
& C3 {. R4 U6 u7 V% P        print ("disabled input. please try again...")
# T  @/ j; V0 ~9 X复制代码
- n5 m9 b7 `/ ?- x
8 {# v2 x5 r$ e0 o2 F8 ~5 I4 x: n8 F( n. i" d0 P0 l) U2 f7 k+ r
主要涉及到的就是一些文件操作函数和时间函数。
: S6 v. a8 h8 D1 J7 w( [
0 v2 {& V2 o! k3 R- S这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?+ `' }% v7 L$ F, ^$ M
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|赛格电脑 华强北 电脑城 南山赛格 龙岗电子世界 龙华电脑城 沙井电脑城 松岗电脑城 pc4g.com ( 粤ICP备16039863号 )

GMT+8, 2025-9-18 06:32 , Processed in 0.087318 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表