找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3124|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
# w5 ]( W/ M3 H8 C, T8 J, r, s% y很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
6 A, b. |6 z- |' A. c
/ X# a4 Q3 R0 N2 x1 x1 c% @. G! v5 y4 i1 q我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:$ e) C  C& e/ O. ]( Y) g/ g

+ Q1 ~4 E4 N+ x- ]8 ~  h: L$ E+ p3 I* K. r! X' ]: C! d" R

0 V3 W" x" K0 R1 x6 g! O7 @于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。6 R- |- n+ i9 j! b( T" V/ E' R
% X# Y0 a& [8 M
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。+ w9 S* O! I+ \- t2 p/ b. p4 M! N

1 W' i3 p* [% Q* |并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。4 Q" f- ?; e; K, k

7 {/ W) _2 b1 r6 C$ H差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。1 O$ W+ ~: `" x% ~+ ^/ e9 e1 B

8 ]- ~# `: Y8 ]3 Q4 XPython代码如下:
( d. q# m6 Q( A2 I& U3 y
( Z2 W# V* }8 ^复制代码
4 B9 \  J" B/ \import os+ w+ c" s$ y! I5 H# R
directory = "E:\\学习日志\\"2 ~& P, |9 z5 g/ X' K* `/ ^) D
os.chdir(directory) # 改变当前工作目录
) y: V4 p% t+ g& `4 ~  o0 p, f' f  Vcwd = os.getcwd() # 查看当前工作目录
' W- e6 I% q- u7 Iprint("--------------current working directory : " + cwd + "----------")
8 y9 c' k& H8 O( @% h" C  X
- j- I. O+ K% b( u6 Q& a8 s7 Kdef deleteBySize(minSize):
  R5 _/ \$ p8 C5 @! W    """删除小于minSize的文件(单位:K)"""4 s2 I" y( ^" ~; P: a
    files = os.listdir(os.getcwd()) # 列出目录中文件
( F2 r7 X- {; n$ r& ^4 X" x& {    for file in files:4 Y. n9 ~/ Q7 i+ `6 [
    ##    print file + " : " + str(os.path.getsize(file))
: n! C5 |- @/ S        if os.path.getsize(file) < minSize * 1000:
+ E& K) H0 {! Q% [" g            os.remove(file)
: a7 c: t  U$ u4 X8 A            print(file + " deleted.")' H, J/ e$ E$ ]- ~2 a
    return! N# |" T! ^6 y; P4 [
' i: m+ T; ^5 l8 `$ p. o
def deleteNullFile():8 l6 V  Q; U, ^0 F- g$ ~+ X
    '''删除所有大小为0的文件'''
5 O6 W, s' z8 h4 E* m* M    files = os.listdir(os.getcwd()) # 列出目录中文件. F. h+ }3 ~9 @% _
    for file in files:$ ~- Q* w2 `* V- A2 l( V9 d4 W
        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0: r% Q* r* P2 e9 @( D- y8 H
            os.remove(file)
% s; P/ p$ w: N            print(file + " deleted")9 E8 G& y# e$ a- C% ]4 u
    return  c. ?3 R- }" ~" [- h6 Y

/ ?5 [; F2 `' l2 Edef create():  ^# k6 s* B$ f  n' M) ?
    '''根据本地时间创建新文件,如果已存在则不创建'''
3 E" P0 s1 W; z$ w( o& |+ e( k    import time+ @' y( \# R, n
    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出4 d7 {9 v: E$ Q9 w/ i
    t = time.strftime('%Y-%m-%d',time.localtime()) - i3 K, C) a; B, X1 d
    suffix = ".docx"
) X* q4 H! T7 }& w    newFile =os.getcwd() + "\\" + t + suffix
" P( C8 j" k' T0 _    if not os.path.exists(newFile):
9 i$ q8 P3 C% e( Q: G        f = open(newFile,'w')
3 _8 P4 k& k7 j; j8 w3 S8 V3 B        f.close()
6 y, Z% U8 q7 |3 G        print newFile + " created."8 v0 H+ h& p9 i6 D: y: e9 m
    else:0 x$ @7 k/ H) F7 o( ^/ h) I2 D
        print newFile + " already exist."( D9 `  k8 r4 N1 z$ l! Y4 z2 \0 s+ e
    return3 a! p; R! ?) D, U

( X" j% e5 t9 v7 ?& n$ W7 Vhint = '''funtion : ) a/ @0 B* E# k  _+ f1 Y
        1    create new file- D; d) f" W* [
        2    delete null file
% H  N0 c& C# Q" p: a        3    delete by size6 a2 m) B& f8 o+ ~( B- _2 `
        q    quit\n
8 H7 @3 A* z; {  K; E1 tplease input number: '''
; y% o( n5 m' P- T6 z* m4 o0 n# [. w& gwhile True:
! s9 L) c( L8 T5 t    option = raw_input(hint)
6 K1 @3 R: n" V    if cmp(option,"1") == 0:1 v! X) A4 S; N* o
        create()
/ N% c# E7 ]* ?0 _5 _+ G    elif cmp(option,"2") == 0:
1 p' A5 \; R* c' b' g9 z9 X        deleteNullFile()
) u  b2 ]6 H5 i9 g9 g& F9 V7 w    elif cmp(option,"3") == 0:
, V7 J9 ~; Y: F3 t. `- g- X        minSize = raw_input("minSize(K) : ")
  f# \/ y5 G$ J3 n- Z        deleteBySize(minSize)
2 A1 H  a- {0 b$ o- [3 A# P1 E    elif cmp(option,"q") == 0:5 B; ]' j/ K/ v0 O" {7 M+ y. t8 Q5 P
        print "quit !"
: @3 ~6 c! V, a: w        break
0 R" t2 F: t' R* E3 ]8 M3 k    else:8 R0 T: L" q" k& Q( N! v' ~
        print ("disabled input. please try again...")  @  d) [  T3 G
复制代码( o6 g: K# X4 \, r9 f

. R# m2 o. z$ N, c6 l8 `2 l7 f/ ?& x$ x* m3 n3 T; x9 p
主要涉及到的就是一些文件操作函数和时间函数。
. `" r* I0 Q, Q% r! |
& _' F0 [& ], c' w) g这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?! B/ E9 {& I: P9 R/ J/ I" ^! ~" R
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-7 11:04 , Processed in 0.095211 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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