找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3049|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。! {3 G; M* m8 R1 b! C1 E
很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
. w1 D+ b9 {% t2 Y4 N" c3 p; W" F3 b: q( c. v
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:) U" m+ |' h5 B  \$ m! p

1 i& f6 _2 K# x
! l+ p! A$ }* K$ Y: ^
0 M( k" A% `6 j9 E于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。
' c! _; `. O. ?+ Z1 v3 N/ I9 h& A* k7 d9 w! ]) B% J2 j: P& v
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。
7 k2 c9 n- |' }* `3 l0 H: j; D: A& L5 t
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
1 ~2 ^4 i, E5 V. }  d4 F5 ~7 \" h  m# V$ m* ?% O6 i
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。' P3 V' E3 e8 D& h; |$ Y7 g8 Q
2 ^6 A; g+ v; o# O, [! ~
Python代码如下:
! D  B$ e% P" t/ S( O  a8 `0 c
9 c7 s: Q- u. L0 i2 X: J复制代码& [% f, t4 {# h( Z& u- c. g
import os& \  X. I- n) l- e$ H0 ~# p
directory = "E:\\学习日志\\"
* f# ~0 k+ L& Y! K5 h( m2 los.chdir(directory) # 改变当前工作目录: O! e  [& W9 [9 R* v8 S* x8 r
cwd = os.getcwd() # 查看当前工作目录
* Q. M2 x4 D) y+ V/ o# Oprint("--------------current working directory : " + cwd + "----------")
6 p  A, P; A8 D+ m$ o
0 i0 Q2 I) a% g- x1 Z7 H* rdef deleteBySize(minSize):
5 x# \* O. ^' j5 x5 S# L( i    """删除小于minSize的文件(单位:K)"""
" I1 ^* y' O' p' l; p8 V' Z    files = os.listdir(os.getcwd()) # 列出目录中文件6 e) {  N2 r% x; e& A
    for file in files:- A, W, L6 S: R. i* e. Q
    ##    print file + " : " + str(os.path.getsize(file))
7 O' k( C$ f: y# b        if os.path.getsize(file) < minSize * 1000:
0 a, {6 G; d& V& E            os.remove(file)$ g- z/ B" Y4 k$ f+ k9 Q; p
            print(file + " deleted.")7 Z( e- w( @1 |/ y  v6 _
    return
( n8 `6 U" j% u) ]1 c& V
) k( ^0 Q. f$ I8 V- \. k  P4 qdef deleteNullFile():
! a+ s6 r; Z6 D% H7 M- ?3 Q    '''删除所有大小为0的文件'''6 D- Z! ~4 }* e; b1 G3 O  f2 v
    files = os.listdir(os.getcwd()) # 列出目录中文件6 A. v5 c7 l) ^# v1 ^$ O
    for file in files:2 L% k% H0 h* J0 a1 K7 g
        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回02 }. ~; s4 U7 g% O2 z1 k
            os.remove(file)
: t! {* n0 q* H. n  S+ ]/ Z- |( J8 p            print(file + " deleted")
4 i  x1 l% V9 t4 v    return
2 t3 C' Q; H) t- B3 z7 H
: R' P( a; T2 G# ?* d/ Bdef create():4 {  o, |& ^6 L* U4 W' i
    '''根据本地时间创建新文件,如果已存在则不创建'''
4 J4 u# E" N  N    import time2 H  c, A! U1 q$ x" u
    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出0 U" I: z! y' q0 n! d1 C% U. P/ Z
    t = time.strftime('%Y-%m-%d',time.localtime())
; o& t' u" `8 J    suffix = ".docx"! z2 W/ }1 [5 j5 P; x5 e
    newFile =os.getcwd() + "\\" + t + suffix
/ X2 N) C1 v: L. J7 z) e: ^0 U7 `    if not os.path.exists(newFile):
: B; O$ j" o4 X6 S        f = open(newFile,'w'); i2 d4 S1 m3 {7 O4 K
        f.close(); |* a/ [: ^, J+ {9 m
        print newFile + " created.". D# B: T- r/ z. T
    else:
5 F$ s+ y" x0 E' p: L6 S        print newFile + " already exist."" \( i) D2 C3 {
    return$ g# V  B5 Z8 p/ _8 ^" C

! f: I. f" R) R9 Fhint = '''funtion : . B9 q0 ~  B  x1 A$ Z5 O5 V
        1    create new file, \0 S" J7 b7 f6 S
        2    delete null file. L/ s# T2 r: D5 I. Y! d+ S* T/ F* O
        3    delete by size
# {8 Y3 M! R$ S7 M% `; N: R        q    quit\n- @( ^$ D% ?9 B& s) m
please input number: '''
6 y. Y% X( D( j+ p/ |+ V. }while True:9 z$ F- c$ [# `" R& k! j8 i7 c) u# e
    option = raw_input(hint). q/ }7 q5 j; w6 \" w
    if cmp(option,"1") == 0:
4 G3 _  |; l4 c6 K        create()7 [/ M; m" s+ w- ~4 X* A1 k% u
    elif cmp(option,"2") == 0:, s' B( S- c% ?" m) @, C
        deleteNullFile()
* {( H8 i) V/ N2 t1 t    elif cmp(option,"3") == 0:# }9 O( J. H. c# ?% [$ r/ G; N
        minSize = raw_input("minSize(K) : ")
0 `) ]$ z/ g8 W$ y5 l9 ~        deleteBySize(minSize)
( P5 c$ x2 S, `+ L    elif cmp(option,"q") == 0:
6 g9 j8 f7 N- U' Z, h+ w+ L/ V- l        print "quit !"
  ~. o  H2 @8 F        break7 q; {9 o: _. T& [/ C
    else:
! v' m% G% A+ B$ b$ P        print ("disabled input. please try again...")
5 f' r0 U) G1 g复制代码( I/ S- m( N- A8 y: k/ c9 L) |
  r$ L' v2 Z' W4 s- c& f6 c( m0 y
- o8 [6 W& n, f- T% f
主要涉及到的就是一些文件操作函数和时间函数。
" C, A. X# g: N' N! q- x, u( |- N; e  ^+ E5 |3 ]/ k2 e
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?- m1 a( g. e* K
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-2 05:50 , Processed in 0.079864 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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