找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3095|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
0 w. f! R: d/ B很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。) q# E/ t( Q/ z7 L
% o- c8 b; F2 N% ?2 k! O, A) V2 @2 I. c
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:  R1 D; X6 x# v; `

% z% G# v% @+ J$ m! m7 h
  f  }! T4 G# {# u9 S8 w" F- K6 q8 f% h
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。: @3 ~) {/ M0 T/ J" k' |4 y
8 }: n+ T, p( ]3 G# J" K# _
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。8 H1 B+ g' b( i; Z& }; R$ R
9 O1 J1 h4 w; \) O1 V5 f
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
9 o( @0 T! i+ }, E  K$ t4 b2 u, b' F8 _
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。) I$ r- |. X( q; A$ L& F
1 e5 y3 c8 e" }+ E! @6 B5 p2 J9 J
Python代码如下:" e+ t3 V5 R8 Y' I% h5 N# N  m5 ^5 c

4 y- \0 M" P8 I, z# c复制代码
& \7 ^( k$ L3 w. M$ @import os
) h( P. W! S2 D, }5 Q* f: w5 Ddirectory = "E:\\学习日志\\"( T( ^2 W* P( Z+ X) ?; X% P
os.chdir(directory) # 改变当前工作目录" A' }7 ?- [' P/ b
cwd = os.getcwd() # 查看当前工作目录
' \$ C( S. S3 N6 L, ]. F+ d0 eprint("--------------current working directory : " + cwd + "----------")3 ~& B! B  S) p" Z

; w( R2 f# m: ^) Idef deleteBySize(minSize):, L# S+ b" R; o& T; A& G
    """删除小于minSize的文件(单位:K)"""7 V9 c9 j) K8 C$ x$ k0 Z
    files = os.listdir(os.getcwd()) # 列出目录中文件
" K; O0 U7 S& f    for file in files:
  R! ^6 T& {# G; v' E    ##    print file + " : " + str(os.path.getsize(file))' I: Y# _5 S: k8 W
        if os.path.getsize(file) < minSize * 1000:3 [2 y$ M! H3 c5 W/ B
            os.remove(file)
6 E/ _- T, i( B9 L( ~            print(file + " deleted.")
% P- _4 f/ i/ n% m7 H    return7 b7 z, U. R) C  D1 S  l
2 C" t! F# I. E- V/ Y
def deleteNullFile():
& o/ j' [. S; R) m, b4 ]. y    '''删除所有大小为0的文件'''
- V. O8 T# s, s& S% l' X% M    files = os.listdir(os.getcwd()) # 列出目录中文件
: @/ r2 j4 b- X/ P    for file in files:
: q$ g" N1 E! i        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0" v$ ~* V1 Z/ d  C# R6 g) q
            os.remove(file)
: D8 y* t, g' |0 y7 x+ |+ e1 K# w            print(file + " deleted"); T- e: U  r( a$ |+ V
    return
' ?# |' |4 n  W  O# G2 Z9 n+ j8 S( M1 u  ^* C
def create():
  s2 q6 K/ ?0 m( {" e    '''根据本地时间创建新文件,如果已存在则不创建'''" x5 G# R; ~/ e2 U( U2 l$ u
    import time) W5 G0 |( m, W2 C0 |7 f
    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出0 a5 v" k5 |* h( x, W* v5 v  F0 b& ^
    t = time.strftime('%Y-%m-%d',time.localtime()) # C* N$ X7 Y2 H9 U# S% M
    suffix = ".docx"
. `2 ]& ]7 \- e    newFile =os.getcwd() + "\\" + t + suffix ; V3 i6 F2 ~) Z9 ~
    if not os.path.exists(newFile):8 m$ O4 s, x- [. I
        f = open(newFile,'w')  ^  K6 P2 G$ X, k# M* m" @2 S
        f.close()
4 ]! p% L# w/ w9 x- z        print newFile + " created."
7 J5 q- `6 L/ [5 {) ?" H' q    else:- Z3 H9 v/ ^9 |' D" @
        print newFile + " already exist."7 }( F4 Z6 O2 g9 F
    return* O, U5 f% o3 G

/ v9 H8 Q- R7 D, ~- whint = '''funtion :
' {+ `/ x4 w. k        1    create new file
6 ~* ^3 U  ~+ S6 v        2    delete null file
1 r# o% f; ?- Z' W9 U        3    delete by size# Z% i8 Y* I) E
        q    quit\n; I+ E3 U& v+ b8 J/ {3 o
please input number: '''
5 Y4 a7 o+ o- m! [) k7 u, X8 _* `0 e0 Dwhile True:
' {3 v( m0 n. {% a/ S; Z, n    option = raw_input(hint)% t* J# E" w& |5 X
    if cmp(option,"1") == 0:
! F) N) J1 M5 G8 \2 o        create()% @$ i6 B: R$ a1 M1 ~( G
    elif cmp(option,"2") == 0:% h/ Z: K* }9 o& u$ W9 M
        deleteNullFile()+ W( Z" m0 j3 H4 G% D- l
    elif cmp(option,"3") == 0:5 U# H8 y! P  r0 ~
        minSize = raw_input("minSize(K) : "): p/ |8 @7 b$ j2 z  k
        deleteBySize(minSize)
7 d, D/ s$ U, F* g    elif cmp(option,"q") == 0:! p1 h; S7 m9 e" @5 D
        print "quit !"
3 Y1 L9 t* W0 K5 F( A% T9 S; B        break
2 x8 C2 H: @% |9 }7 W% M) C4 J) b2 t    else:
. k+ L; q4 Y& P        print ("disabled input. please try again...")' }. K1 M- e7 y" H( M' Z
复制代码, ^9 q$ @$ x2 Q: D" ~
( r2 K# A- f! \

' e) z: ^4 M* p; O4 m主要涉及到的就是一些文件操作函数和时间函数。  x' F+ \1 I- n$ \6 N

& D: k1 t+ F. R. B% X0 j* c这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?6 N& z1 {% z* c# F/ c8 D) w
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-16 15:39 , Processed in 0.086614 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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