找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2939|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。" Y( `) v) \" R/ K  O  {& i
很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。0 [9 B- |# y- N6 }. Y  s
! R2 T/ X! R3 G" v( \4 S
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:
: u3 k( P5 p+ E0 I2 N% H- ~- j/ a! b( T; M  a4 W
; @+ E0 P2 ]% r0 ^# h/ q
# s" S$ B! p3 L" Y& u
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。5 {3 o! c* c9 L

9 O3 T3 ]: t; K8 D然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。$ T7 s: C! m( S! |2 X  T# S
- E& F1 c, {; t( r4 g8 d6 W7 U$ H
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。' c2 ~% V" J% {6 Q% L: `
0 g$ r; Z: v' u! J  A2 x
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。% j: P- D) B% W8 H; `1 Q3 S

& I5 R( J3 U5 |7 v& F: tPython代码如下:
# M* o* ?8 b# w8 X
: n9 r7 Q* H/ i9 G复制代码0 U% A( J( R) e* x! r* [% ]
import os
+ x) V+ V+ C2 E4 `directory = "E:\\学习日志\\"
; U+ h- t! p+ N$ ]0 Y; X/ U* Gos.chdir(directory) # 改变当前工作目录
0 i  ]* _$ Z! w3 Vcwd = os.getcwd() # 查看当前工作目录7 q( {' g6 G9 ~! M
print("--------------current working directory : " + cwd + "----------")
: ^" H% I) S2 D% ?
& N6 {7 b/ k1 K2 ndef deleteBySize(minSize):  f' M9 z2 N5 d$ j0 m# k
    """删除小于minSize的文件(单位:K)"""
" V" c& U' j/ x4 K7 u2 H# ^    files = os.listdir(os.getcwd()) # 列出目录中文件! A& {! _% I' n$ s! g, F. l$ t9 ~3 _
    for file in files:
- ~* s# Y8 k3 _- e1 B, M; B: n' h# j    ##    print file + " : " + str(os.path.getsize(file))
' _6 e( D2 t# C5 N6 o        if os.path.getsize(file) < minSize * 1000:
" U% H# H1 @4 G            os.remove(file)
, J2 b) W+ I) _/ P$ l* ^: a: H            print(file + " deleted.")
, _3 ~; _% o; [    return) R% b8 [# G, c* P/ M1 P

* M8 g# k) b* C2 p9 b5 Q# A! {def deleteNullFile():; K  I( W1 l2 M* y
    '''删除所有大小为0的文件'''" a+ o, u. B) [; O
    files = os.listdir(os.getcwd()) # 列出目录中文件
9 a8 _/ R( `' ~! M    for file in files:
- u; f, Y1 @7 `6 _5 d0 w        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
& d! S. F, Z$ {" D  B            os.remove(file)
; Q. w( r. |, I/ r8 Y& D5 S            print(file + " deleted")
" k. E6 M- K/ k1 ~& _2 Y    return: [1 M% O0 h7 V" ?* i8 D$ _
  ?; g" r; Z: J2 C& E
def create():
  J. ^# u8 f" @% Q4 c    '''根据本地时间创建新文件,如果已存在则不创建'''* ]% J7 k& Z! N$ \
    import time
: ]+ P" v7 u! f8 v    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出8 B1 }3 ^$ F& v6 B8 x, x
    t = time.strftime('%Y-%m-%d',time.localtime()) ) V' c2 R7 ~& h& F8 i$ Y  b" S) ]  Y
    suffix = ".docx"5 C5 X) `( e$ [8 U. \( {% x
    newFile =os.getcwd() + "\\" + t + suffix : H; r5 Q, i! h. F0 z" r  ~* Y
    if not os.path.exists(newFile):* i9 k8 E" p0 p( J3 ]
        f = open(newFile,'w')2 J- E1 X/ X! |1 c8 I, |
        f.close(). ?3 y4 z+ E  R) o7 O
        print newFile + " created."
' |3 P3 [' _1 I) i6 \* B& w6 u8 [    else:) v" D; l4 f/ M7 O* G) T& S5 i
        print newFile + " already exist."
% n! ^. `1 X/ }9 ^5 [1 }( Y    return
3 K3 u! E0 ~+ u! X& d  h' @1 B% u9 i7 s' k
hint = '''funtion :
  J6 ~! s4 ^! ?' L/ O        1    create new file
- w0 ~8 H6 k: J) s        2    delete null file, S* W( p, |8 N% r- i! t
        3    delete by size/ ^! Y$ d9 {3 ?0 P6 F, r: L6 Y9 q% N  Z
        q    quit\n9 P" T" S' H$ T& V' d- S6 g9 L. T0 G  g
please input number: '''
1 a; u; a) O! I2 ]while True:6 T; f# W, ]& W! R* O( H" ]2 j
    option = raw_input(hint)/ |2 c4 X8 w: i5 V6 p$ @1 s# i
    if cmp(option,"1") == 0:
1 k- Y. v$ u0 A) I1 G7 X        create()
3 t9 @6 g, O) T5 b    elif cmp(option,"2") == 0:
) F, h8 {- S! u2 a        deleteNullFile()6 `4 n9 V+ g% p+ _% a* {
    elif cmp(option,"3") == 0:
# b( ?' C. S, l7 V* w$ p/ ?        minSize = raw_input("minSize(K) : ")' m" i' j. G, r* p; O5 y
        deleteBySize(minSize)
! A8 I) N8 g, M8 M    elif cmp(option,"q") == 0:0 u' `1 S1 Q5 R; {7 }' H) C
        print "quit !"
9 l6 R* F% t2 m9 p        break, n* x6 t* R' H0 E
    else:
" Z$ s6 U& M' g% D  s( {: H4 G# b( q* }        print ("disabled input. please try again..."): Z) g$ u  l) E4 m
复制代码" U+ n/ T1 \* |8 Q- P: w1 |
3 E: Q* Z' E3 M4 e. W. _
+ y$ z& M5 v/ [* v
主要涉及到的就是一些文件操作函数和时间函数。8 j" d! O; n( _2 K! }  G
8 t( S* q$ d5 {. N5 H
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?% |' d; h2 t9 ]. H* V7 {# ^5 h
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-12 11:45 , Processed in 0.075656 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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