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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2133|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
. S' H6 @# Q' s+ S( u+ E很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。' _6 f4 b+ O0 n. R3 b- r/ @. \

, w' @& ]+ q) d  _- `% x我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:: d, g0 y1 @8 {7 X; Z# I6 e

8 y5 G/ }% c0 {9 |' D
8 b4 K4 H, g" T5 Y* y' Y5 n- r6 U4 v7 a: L
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。: o' N4 Z+ g7 y& ]* Z* e

( t; a' v! q# b$ F然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。5 Z! C( S; G) e/ f5 ?/ [
$ Q9 g- L  V3 K8 W, @& y3 ~% e
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
1 j/ u8 s; I9 O! X. f9 }6 C3 V, Q1 ~! o7 t' f
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。/ {! d( p- }, t
& n! |( G# i5 ]- ~
Python代码如下:
" {9 G4 S1 k2 u# Q1 b& ~3 y$ ~5 j) O8 N2 G
复制代码) Q+ `: B5 P' F$ X% f
import os1 E8 V" E! }+ k1 I4 ~3 L5 N8 d4 s
directory = "E:\\学习日志\\"7 K! X6 Q5 U. r$ r4 e
os.chdir(directory) # 改变当前工作目录& P& a, F% M2 s# |8 F
cwd = os.getcwd() # 查看当前工作目录
% c' C" E: Q" A" Nprint("--------------current working directory : " + cwd + "----------")
- Y# V/ z) F6 A6 j
4 ]* F; C; L% `" a  b  w* gdef deleteBySize(minSize):
$ [8 e" ^4 e1 R    """删除小于minSize的文件(单位:K)"""2 X$ y' P: x6 o+ V! g6 m
    files = os.listdir(os.getcwd()) # 列出目录中文件! C! X( ]- v& y( B
    for file in files:' x. p- C4 S/ p' F
    ##    print file + " : " + str(os.path.getsize(file))5 [5 y" G7 a6 _
        if os.path.getsize(file) < minSize * 1000:9 N, C3 K; a3 x) `5 ~
            os.remove(file)8 S; H& p5 K) o& F/ q- D& M4 ^
            print(file + " deleted.")5 R5 Z) c, S( _) c" Q, S" l
    return' {' Y& l$ f& E: U

6 h/ V" D% p9 D( r; _7 @4 v0 ?def deleteNullFile():3 X3 ^9 M8 R1 \5 V
    '''删除所有大小为0的文件'''
2 K' s" v1 x# Q    files = os.listdir(os.getcwd()) # 列出目录中文件
; o$ ]' N- J( k6 i0 Z5 \1 A    for file in files:
9 S3 x/ R, l5 {0 [/ P$ l5 t        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0' O- e% _' I/ X' C6 ~+ D
            os.remove(file); n2 l. w5 B1 _7 H9 r1 s
            print(file + " deleted")+ z% D9 p6 q$ [' B  q* c
    return% m! U/ j1 G$ c# a
2 F* U" {1 Y) T$ F
def create():2 r! M( o8 N5 p$ }; r0 m' X
    '''根据本地时间创建新文件,如果已存在则不创建'''
7 a, X9 u5 @; D- \1 n    import time9 D3 N$ v( V9 Q% J" M
    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
0 j3 Q4 s% x  N9 S; s    t = time.strftime('%Y-%m-%d',time.localtime())
6 c: n2 \- D5 j( u# D# T, J    suffix = ".docx"
4 U8 n/ o% t2 C    newFile =os.getcwd() + "\\" + t + suffix   u1 ~3 y. [0 z! r
    if not os.path.exists(newFile):* n/ Z0 r4 N  ]
        f = open(newFile,'w')5 f5 j/ {+ N; ^* l
        f.close()
3 _0 L3 ?+ S/ b        print newFile + " created."8 L+ j0 \( H6 ^9 l$ W) U
    else:9 c: |& ~% |' B! i) G
        print newFile + " already exist."
( q( H% }% }" B1 i: z    return! F9 [% G0 k! Q6 n

, o" C% ?; m& F# C/ shint = '''funtion : 2 H7 B% l) I2 Z' Y% W. T
        1    create new file
8 m9 W2 p5 b* \/ |8 f, a4 d        2    delete null file  [7 m3 A9 l2 i1 o; O: r/ n9 w
        3    delete by size
$ Q" W) C/ p% V0 Y" g2 C! _) x        q    quit\n
- {# w3 O5 H  s( Q* m8 Uplease input number: '''
! L" E' r9 {( I  [; N8 Cwhile True:4 F: X- l8 \  ~0 z
    option = raw_input(hint)9 ?, @  y( G# M" i6 x. J5 w, u
    if cmp(option,"1") == 0:
- s7 j& f. x! a. P- ^; ?, x: R9 a        create()
) y% a' L: G# o. Y; n3 V    elif cmp(option,"2") == 0:- V! h. M6 O3 T
        deleteNullFile()7 V/ K/ Y% h, h( d( k2 g. c2 Y1 C
    elif cmp(option,"3") == 0:
+ |: @% r* v5 q9 [. }! @8 q, o        minSize = raw_input("minSize(K) : ")- p3 h0 @1 u& l& P
        deleteBySize(minSize)
# e% \) V8 j" k; P( m    elif cmp(option,"q") == 0:) b& G& y/ e) P8 c
        print "quit !"$ A" v8 n! {+ e4 a' l7 a
        break
1 l9 ^8 E1 u, t' J* \; Y. G    else:5 G: f1 V4 u% N$ X& F( @# R
        print ("disabled input. please try again...")! V) }; l1 k( f/ N6 i# k6 E5 k
复制代码( O8 a5 p: Q) f2 C% y+ [/ ~7 k0 T

$ ^( o' h: Z8 M. g8 \4 ]
6 h7 ]" O3 @3 P主要涉及到的就是一些文件操作函数和时间函数。
5 Q* J% i0 C: `+ h+ ^8 c6 s' I! C
' }2 U* W7 O* T5 A3 E! M这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?: q% A( n, @* W3 @  H  S
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-19 19:19 , Processed in 0.159415 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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