找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3094|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
; g$ X- d& X6 Q7 e8 B% D很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。  F- }# I0 [! s

( @& A4 u, R. _% W1 X9 L# h3 F我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:' ^- Q0 \5 N5 T# M! @$ x, H) [
! B# L  h7 f7 o7 ^

: Q& O5 a6 [" N
7 B! n6 \! `1 V" G  ~  I于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。% @# `) o. \7 Z* S
) F; y. R. C- a
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。
  Z+ j; q* }* b8 x$ l
/ a3 ~+ \# U: r并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。5 p5 O) i- p# ^, x
7 ?% X# _; e+ {! a- A
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。: ]: e4 o5 C! i! i: Q! V

5 ]0 ?% @& p& n, }; z  FPython代码如下:
  k8 b! a, H8 P) F/ k
, o# \3 n+ l: k复制代码
# r5 k8 `2 |5 simport os5 @/ y) q: ]1 _( c. R- K/ ?
directory = "E:\\学习日志\\"2 W8 s* B* m" b
os.chdir(directory) # 改变当前工作目录; F* T2 H- |& G2 ]; v8 e7 D
cwd = os.getcwd() # 查看当前工作目录/ X, E5 u4 q, {) [; q: Y
print("--------------current working directory : " + cwd + "----------")4 |5 `6 J- v2 A" ^
1 o0 r5 d2 Y6 I; k7 g4 p+ J. G
def deleteBySize(minSize):
- `; E" r& d, g    """删除小于minSize的文件(单位:K)"""
0 P1 g* l; }, G/ |# A2 T/ ^: r. c    files = os.listdir(os.getcwd()) # 列出目录中文件
) _5 B) `2 _) z    for file in files:
8 o0 i  m$ q  S) B2 a    ##    print file + " : " + str(os.path.getsize(file))$ g# {8 y& g3 `/ x, R! `
        if os.path.getsize(file) < minSize * 1000:
" E) O, l" K" c3 Y" ]            os.remove(file)0 V9 s- E# `& s3 c% D0 }6 D
            print(file + " deleted.")
( L( g# s, |3 v1 t: O- u    return
- X* O! V( I" ?$ P1 T+ s7 a* h- P0 ~
def deleteNullFile():
) v3 W* l' _% g& b3 v" v2 v    '''删除所有大小为0的文件'''6 e- r/ P& t) b! {+ L
    files = os.listdir(os.getcwd()) # 列出目录中文件
( \+ A& r1 n( T) l    for file in files:5 q, F$ y/ f6 f) T1 F) p- X. V4 m4 [9 T# |
        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
: P3 e. S9 G0 _" z            os.remove(file)! M4 m8 u" ?& E, T( v6 @; r0 b9 ?
            print(file + " deleted")  z' o% K9 O- C: Z" C+ O. |
    return
+ [' D- ^7 Q8 a# }
0 Q( T7 K9 }; K0 E. F% g0 p5 ^4 bdef create():" l9 v; C: l6 ]
    '''根据本地时间创建新文件,如果已存在则不创建'''
. {" t& X( K$ \* T0 Q1 K    import time
+ o3 p( c7 |- w/ F    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
, `' L+ A7 w0 V  c2 V* p    t = time.strftime('%Y-%m-%d',time.localtime())
2 e/ t$ z3 v- C    suffix = ".docx"' Y. e6 z/ L5 x. M
    newFile =os.getcwd() + "\\" + t + suffix 2 B/ _1 N, \$ ?' ^" a5 Q8 J. E
    if not os.path.exists(newFile):
, }- s' t! D% T5 T* l  g: M        f = open(newFile,'w'), w/ X2 G2 ^0 o- ?0 D! K
        f.close()& u- q( H6 z% g4 g. H
        print newFile + " created."
: u( r' g+ y" j1 C    else:
4 z8 L. A8 T2 L/ D4 s! e        print newFile + " already exist."7 q3 M+ \2 _5 K( j5 K' R2 Y. f; s
    return- _' U# S0 O, ]4 V/ e# @
( |. U$ n2 j7 q& Z3 ~5 {
hint = '''funtion : 0 }  ^9 t" R0 {0 N6 [- Q
        1    create new file, f- j  y2 G+ Z
        2    delete null file
' g( X) |% i. U; F. Z        3    delete by size  H$ x6 Y: c# P; V- e! K  k
        q    quit\n
& ]$ x6 C' Q( Y$ V; hplease input number: '''
: l& Y3 w2 n7 [# \4 \- awhile True:
# b1 d( l: H3 B. y0 p* c7 g    option = raw_input(hint)( g7 Q$ l/ r" F1 d! w
    if cmp(option,"1") == 0:
) w! ~  i3 j# Y( q  v6 K3 n3 f        create()6 i9 v( I2 q8 F0 X6 w% ?
    elif cmp(option,"2") == 0:% y7 R8 b3 L2 h" A* ^  v
        deleteNullFile()
0 B! t" l4 _) w4 V    elif cmp(option,"3") == 0:
% {; d8 P9 G" P+ S; m        minSize = raw_input("minSize(K) : ")
, r" x1 R* U: M8 j* u" u        deleteBySize(minSize)
5 P! y7 p3 A; f6 I/ t$ l* ~    elif cmp(option,"q") == 0:9 j, S' T1 l( `6 G7 ^+ C1 e
        print "quit !"8 I2 D; C0 ?6 n, L
        break: B, I6 @+ B" k
    else:
2 d9 Y3 ~& P3 ^2 Z. ~$ [        print ("disabled input. please try again...")
. L9 U5 b( J2 p: Q9 n, B1 }& O复制代码
5 f8 {" D/ o, k4 K+ H9 I% D* _
& D4 u- a  i2 Q9 w7 N% G" f$ j0 V, v; y! H  ~& k, D( m& H
主要涉及到的就是一些文件操作函数和时间函数。, ]# I4 ^. L1 O! i
2 I' U1 ]: z0 ?# c# @( T
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?; W5 F. S" F( k$ S
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-16 13:34 , Processed in 0.102384 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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