华强北电脑城 龙岗电子世界 龙华电脑城  凯尔电脑

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2914|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
# `* K& B0 |. a$ x. \4 ]很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。* \6 S) q* W+ p

4 J3 r: j1 ?  [7 r3 z我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:8 D/ l. `- w8 g0 _8 v
9 Q/ G/ L7 }$ Y8 r

  {% }! d" w; n' p
  w3 p3 L/ F2 s- j" X- d于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。4 r; T( ~- i! w3 }5 J% G

, ?0 z8 v2 D- n* U. _, `然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。/ G7 r8 W8 V7 s( w$ K  f8 p+ ]

" \# m! g2 P2 g并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
* ~: v2 R3 R9 `) A5 L4 T' O3 v+ r4 g# N& E& T$ o+ p5 ^- b7 ?" o' A; j
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。( m) `" z0 f- Q. W. p
. V4 S/ ~$ y/ G/ M1 Z( ?& z2 `/ d/ ]
Python代码如下:
  T( u! F5 Q( U* R- }9 t
/ r1 l: M5 ?1 R: T/ u复制代码
* B7 d7 i7 @7 \! cimport os
- O/ v* ~' H) E* Cdirectory = "E:\\学习日志\\"2 I; T  {7 j3 c7 x+ |) f7 P
os.chdir(directory) # 改变当前工作目录* a6 m% ^$ n  Q/ ~# L/ Q" x) O6 K
cwd = os.getcwd() # 查看当前工作目录1 ?4 r$ }' w8 T  D9 }1 N
print("--------------current working directory : " + cwd + "----------")% s  z& I$ ?0 D  t

: q2 ?$ X/ O( s* s8 Q; ?  V8 ydef deleteBySize(minSize):
5 I# W* J- u/ V    """删除小于minSize的文件(单位:K)"""9 m* c7 ~$ y; i$ Z: ]
    files = os.listdir(os.getcwd()) # 列出目录中文件7 ~- x  f; n2 u1 d
    for file in files:
3 J: z6 M6 n( ^! k" H    ##    print file + " : " + str(os.path.getsize(file))
2 _9 K& }" t0 ~# f        if os.path.getsize(file) < minSize * 1000:
% J; N/ T9 q* D# i0 v) W. E            os.remove(file)8 F/ O: s1 }0 ^5 c9 l
            print(file + " deleted.")( ?% E0 y% H$ d& m+ I' M, h
    return; M" {) Q+ Y% S" m+ s4 E% Y" S

% O/ U3 X2 W$ o4 u( L$ Jdef deleteNullFile():: g! x: h- ~# y
    '''删除所有大小为0的文件'''
7 [* G" t- X/ T* U5 d) Z5 U" p    files = os.listdir(os.getcwd()) # 列出目录中文件
& c, K7 p: d1 _& C! k- f    for file in files:5 U$ t0 W( I' S' H! E! n1 h1 u
        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回07 z- y! p6 U" U2 r$ V) _- ^& G
            os.remove(file)6 g/ }, f* A* \, o0 M  }+ V
            print(file + " deleted")% i1 m4 i  o7 o; Q  I- Y9 h
    return6 t9 |4 d. r% b1 N2 p

1 v( ]0 R9 X8 [0 @. ldef create():
" N6 `9 w" p; A% u$ h    '''根据本地时间创建新文件,如果已存在则不创建'''( o3 \+ M! q' K: Y, ]
    import time6 E7 f2 t& {5 G7 Q
    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
% O' F0 s3 e$ Y    t = time.strftime('%Y-%m-%d',time.localtime()) ( Q7 P/ D$ ]2 H8 P# J" f- j
    suffix = ".docx"
. P! h8 j) B$ h    newFile =os.getcwd() + "\\" + t + suffix 7 p2 f8 D- C; z. @+ f
    if not os.path.exists(newFile):
0 F$ N+ h. h; ]3 O/ G  N        f = open(newFile,'w')
' Y8 V! z1 d& `* E8 _4 P5 q' Y        f.close()
& a; Z& h  k: a        print newFile + " created."
# ^6 V! \# q$ P# B7 d% s' l    else:
+ L* C6 }4 h$ n6 S& W" \        print newFile + " already exist.". y! ~) v* s0 ?2 A1 h$ f6 e- L; d
    return' Y7 b$ t8 e; d& j+ L9 @2 T) q
- w- Y( n2 _6 y7 @
hint = '''funtion :
0 S7 x9 V1 F  }0 ?        1    create new file
& U5 B* V" I) S        2    delete null file
6 [7 n( N/ q- Y$ ?; [% R        3    delete by size
3 Z4 A5 r* o/ x        q    quit\n3 V" d/ d4 y; h1 L
please input number: ''') e) N+ o$ D7 Y% h( @( h3 e
while True:
4 \8 v* A3 Y: i& o" S8 Y    option = raw_input(hint)
/ P. B, b, |% w# _! s: _8 Q    if cmp(option,"1") == 0:
/ v  q$ k: v- \+ T+ c        create()
+ l4 z) N) ]# f, r3 ?# j    elif cmp(option,"2") == 0:
  H' ^6 A% O' N        deleteNullFile()4 w8 t4 T& w$ P5 I5 S# q
    elif cmp(option,"3") == 0:
3 q! z$ C: N3 Y, K        minSize = raw_input("minSize(K) : ")
( d7 H+ s5 ]: X& y* h        deleteBySize(minSize)9 |2 M8 Y) g) S0 L8 ~
    elif cmp(option,"q") == 0:
0 t* i4 r0 Q" w        print "quit !"
3 y1 r! m" u& r) ~9 B        break
5 n- t7 N. u2 \% G, V' F, q    else:% e2 @" c% a) V5 W
        print ("disabled input. please try again...")
- n0 x2 S) u0 m+ x+ Y复制代码
& U4 H7 D/ D/ J: _) a- P9 m( _6 H' p3 y' i

8 [( Z2 I( \, F" A* p主要涉及到的就是一些文件操作函数和时间函数。
# [8 l) o* _/ o6 O$ V1 z3 d6 M, ^* G/ b! Y; ?7 ?  ]
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?
( F. y# Z# \, D+ o4 N( z1 Q
回复

使用道具 举报

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

本版积分规则

QQ|华强北 电脑城 龙岗电子世界 龙华电脑城 pc4g.com ( 粤ICP备16039863号 )

GMT+8, 2025-6-17 18:03 , Processed in 0.105200 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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