找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2925|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
4 B/ I* B6 c. {8 p% b- a1 n很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
# [( h3 y: [# n( v% V
8 {) W% y8 u1 J我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:
) [! v: F) E' q4 `3 n- N/ H1 l0 o; l) ]( c4 G
: N) {4 D+ H5 J1 x
8 \+ x; d4 x) b) f
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。  H8 J+ }$ U* j7 g" B/ N
2 f4 w& Q( C' W3 s" k; W
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。5 [8 c; G/ R+ M! G% H" l

* Q. H0 M/ c6 y) A" J) s8 z1 e并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
3 T1 N8 O! R$ e- |6 n7 Y! x1 U* `) t% o' l7 M
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。, J+ t. e0 `# x

* E" O+ x6 |; n! Z) LPython代码如下:# K3 K  ^5 k6 v1 ?+ z9 e- a7 q

8 N( N/ h3 y5 k( n复制代码3 N: J1 [& T5 D, O, f  T! ]$ e# {4 U' b
import os# E7 }6 E/ O1 B( j$ g' D
directory = "E:\\学习日志\\"7 W1 [6 O6 T1 Y4 V  n  Z
os.chdir(directory) # 改变当前工作目录
6 r* Y9 q2 C; q' G1 o6 Tcwd = os.getcwd() # 查看当前工作目录
5 c3 F$ P8 y  gprint("--------------current working directory : " + cwd + "----------")3 u* E* X" P" s; s2 F+ p

. e* t7 W6 f3 f8 V$ Sdef deleteBySize(minSize):
: |1 J9 a+ k7 v$ L1 _    """删除小于minSize的文件(单位:K)"""9 p6 K9 H- W* q4 ^% |# R
    files = os.listdir(os.getcwd()) # 列出目录中文件
3 I: N6 Z) Y) [1 ^" }6 v+ N: q    for file in files:
$ O- r* o/ u" R% J    ##    print file + " : " + str(os.path.getsize(file))
' I1 }% s/ c8 B" Z" ?8 x+ l        if os.path.getsize(file) < minSize * 1000:
- _' F3 B; g/ P0 m# {            os.remove(file)
; _: a" M. @: b8 U- Q, R3 d            print(file + " deleted.")
. o- r/ x4 @- Y0 B4 s1 J# F    return
1 B3 D/ V/ p8 r
0 |2 X6 R/ F% W) C* Pdef deleteNullFile():9 a% V/ P& H' q- w
    '''删除所有大小为0的文件'''
+ h5 a" y. ~2 [$ Q  f9 |    files = os.listdir(os.getcwd()) # 列出目录中文件+ K; ~' p; R0 m7 o) o3 D* T
    for file in files:
( S, G" R! G* R( ^1 ]5 H" c        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回03 C" X+ R; n$ X6 O& O& \/ Z* f
            os.remove(file)
$ x7 E9 A2 q% [. o6 |            print(file + " deleted")/ U+ }4 ^& P. F. c$ c& `4 t
    return  B, q# @% v- e& M7 j6 q

/ I! x- I% D( Adef create():9 \' @. c8 _5 m3 e
    '''根据本地时间创建新文件,如果已存在则不创建'''
' V7 x! H2 `7 c5 K& {. g6 S    import time
: ^9 P" _( h' W( j3 l$ `    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出2 {7 d. X8 ^! `1 U; T8 N( L2 Z
    t = time.strftime('%Y-%m-%d',time.localtime())
, O' W& i$ h4 E: g1 a% i5 T! ~# R    suffix = ".docx": M: i$ U' y" t( ]$ @0 ]9 m& k$ x( G
    newFile =os.getcwd() + "\\" + t + suffix + ^7 T% E0 N/ _+ Y$ [/ a7 Q
    if not os.path.exists(newFile):" m* u' W; g: z3 o
        f = open(newFile,'w')4 |4 H% J) _* |
        f.close()* a( h) i- G7 P4 f
        print newFile + " created."2 c! I2 B- H) b* A- n. u1 H6 c# e
    else:
! x5 X0 U) ?2 {6 Z2 N: o  e        print newFile + " already exist."
  K/ t6 ?! d% Z0 C) C8 S/ u    return" J7 O1 P. ?3 _* Z' m1 ], _2 O7 }
: z, Q- O9 T( [* V1 Z
hint = '''funtion : 9 z1 _3 A0 K& w; h
        1    create new file
& L+ a$ D; f/ r0 `        2    delete null file3 M1 y6 m  E0 ]+ \$ E) V! c
        3    delete by size
' U  z! G! c7 e( \2 @1 E9 d0 a        q    quit\n
* t# _- t* e3 m9 Fplease input number: '''
5 {- P, \. u8 B; }5 K) e$ A  Ywhile True:
" S7 k5 L0 k* E3 i    option = raw_input(hint)3 o8 N4 ~/ H6 R- l- R9 P+ K
    if cmp(option,"1") == 0:5 s/ `4 T* G# \, C4 m
        create()
# `* S+ W9 Z5 N' j2 ?$ ?    elif cmp(option,"2") == 0:
! C: A( T% b9 L( U% e; L& A        deleteNullFile(): c& A8 W4 V: \3 p3 W+ [+ n
    elif cmp(option,"3") == 0:. o7 x5 Z  P* O) I
        minSize = raw_input("minSize(K) : ")# L; P0 m$ D8 E
        deleteBySize(minSize)
8 @( _* Z" s1 ~6 |* m3 D4 V9 X    elif cmp(option,"q") == 0:0 W  k7 U* y: f
        print "quit !"
7 j" [% Z6 q5 O" B$ p. f2 K$ t        break
9 n3 r0 F) L+ ^2 J. G9 R, ^3 N    else:
  B( @6 V- n8 U! p# e        print ("disabled input. please try again...")# U( D! T4 k! V" W* N4 a/ l, M6 N
复制代码
  g- C$ Y' h' f6 S
: j! D# b% j+ i& y" c* _$ v6 [) k
% {$ h  s- A9 S5 H( q主要涉及到的就是一些文件操作函数和时间函数。9 j% x) b9 }9 V; F

- B/ k5 N1 V0 H6 Q9 S这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?8 d% m& C6 h! z- v4 }" A
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-6 01:18 , Processed in 0.033760 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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