找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3121|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
0 `# C! Q9 l8 E& F: ?$ [很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
0 F( Q+ Z; z/ O- Y
) L4 c) N  a+ R8 U& j& U0 B0 E我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:# i- O- k' \0 D! I

6 H" Q7 S* S2 t5 a: H/ k. x& Q& u  ]- X( H% ^

1 M. y. d5 U: r% v于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。' y/ n7 i; k( N0 Q  ?

5 y  C5 X9 F; V5 _/ Z然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。
6 b8 E" `5 M/ K+ u- ~$ N% |/ r- p* M
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
& L2 {  B1 A  K8 V) {2 q- ]8 D  Y3 T( Q+ m4 t$ Y0 t" x9 j
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。
, Z/ D- d5 F" @0 h! F2 ~. z+ m: q2 Y$ y4 t1 g6 T$ s( H/ b8 V: k
Python代码如下:. g! K7 a  w9 s# G1 T
* }& K( @/ O* |+ {7 S% E
复制代码8 g2 r0 n. i% d+ B
import os
% {$ H8 L/ }4 B) O6 W' ?& i! b/ Adirectory = "E:\\学习日志\\"
- N+ R, k0 w& c0 `os.chdir(directory) # 改变当前工作目录: _0 E' }; Z5 I
cwd = os.getcwd() # 查看当前工作目录
" @& l4 z0 _) }+ hprint("--------------current working directory : " + cwd + "----------")1 ?0 j' F8 K: J1 u

1 x: |* n% y8 Y- |def deleteBySize(minSize):
5 o( T0 z; H. |$ `: ^) |; F    """删除小于minSize的文件(单位:K)"""0 r! [, X- Y  z: P: D) l2 |
    files = os.listdir(os.getcwd()) # 列出目录中文件: X4 {/ s4 n6 [/ t
    for file in files:
( k! o( Y4 |7 {' o; N3 W& I    ##    print file + " : " + str(os.path.getsize(file))
6 k# T# j  L5 `, M( ]7 Y8 i: f7 l" [. s        if os.path.getsize(file) < minSize * 1000:8 d* ^/ Y' w6 m; }, J
            os.remove(file)& [) g1 ]9 y7 s, y2 d
            print(file + " deleted.")- W- ~2 i6 F. u( e2 o3 p% |% Q
    return8 n( m0 p1 H" Z; Q

/ I1 a) l/ V- g! O1 qdef deleteNullFile():; A2 X1 F; a/ i" o
    '''删除所有大小为0的文件'''' s( q. [8 o( M, b
    files = os.listdir(os.getcwd()) # 列出目录中文件% y8 ~& Y. K! r" N" p2 Z
    for file in files:- \) ~1 q% I7 D
        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
# N. Z# j0 d- a% v            os.remove(file)6 z! x4 Z: P/ C& u% k
            print(file + " deleted")
2 Q# y7 b! G/ E1 a5 N+ J    return
$ _0 {, k4 U2 t) A& [* n* u5 K  j  ?! ?4 [* o6 ?' {/ f
def create():8 z1 g* h' `; Q  s! d- J
    '''根据本地时间创建新文件,如果已存在则不创建'''
/ Y) Q8 ]. L% J, l. t: i    import time" @+ ?# A9 f/ _; I: Z
    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出; |" {  S% @) H+ u4 N: a
    t = time.strftime('%Y-%m-%d',time.localtime()) . q$ [2 o' A  _, b: w+ U! h
    suffix = ".docx"+ G' V/ W+ u. j  S% ~$ x8 F% C
    newFile =os.getcwd() + "\\" + t + suffix
7 L  ^# [1 ?- A! A. F    if not os.path.exists(newFile):
3 P, U7 A' ^( }+ f9 j$ i        f = open(newFile,'w')
% Y! o2 G  G* v: e! L        f.close()8 j, Y# @% {" ]- Z8 b
        print newFile + " created."
% s6 _; y" k7 [- n    else:- y( }/ R+ O- Y+ E' L5 t
        print newFile + " already exist."
; O" w) y! f* |/ \5 H    return
* P( D! Q* j3 d" ?# Z% _. A
! z) d! v" W+ P/ ^1 z3 s8 ]; Zhint = '''funtion :
  R% l8 ^- |# {0 G' k        1    create new file' X) G; ~. C3 _' i  s2 M# B* D
        2    delete null file. ^) w3 m1 x- q+ I3 n
        3    delete by size
; P& g! u( W, z7 p; q  V: J        q    quit\n
+ |6 D4 ~+ J+ r1 U! bplease input number: '''
0 B" }3 e' g( |- d0 ~while True:
( n* ?: t( l0 {! ]* r$ \    option = raw_input(hint)
# ^) R$ c' R* I    if cmp(option,"1") == 0:5 [3 Q, o4 B! W3 j! \2 f
        create(): @& f8 z- o' t) X- ~" S9 r6 p) q5 B- E
    elif cmp(option,"2") == 0:: K; [" N8 S" O! ^5 ~
        deleteNullFile()
4 F9 z' I; ]$ K* |. t$ ?- R3 o    elif cmp(option,"3") == 0:1 K9 p" _1 R  ^+ K
        minSize = raw_input("minSize(K) : ")
9 |! w! @- K+ E2 `8 @7 }        deleteBySize(minSize)  e% E  z4 e/ Y9 x
    elif cmp(option,"q") == 0:2 L" [. U, |  C8 G# K5 L
        print "quit !"
* a/ m$ K' E  W) H/ m        break
: c8 {* @" S4 I6 `( |* y    else:% Y$ G7 ^+ x# t$ Q( B
        print ("disabled input. please try again...")3 T9 d; m# r: o+ l* A. B
复制代码( y/ R' _! `# |( M" M8 O* t4 X3 P
: K) b( `. G5 J

+ D/ {# e) N, g/ f主要涉及到的就是一些文件操作函数和时间函数。
8 T/ T% U$ d" n8 q" N6 ?: V- B9 t* P, d4 b& Q
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?
6 e- j& ?- }2 t' N5 I2 b
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-7 08:03 , Processed in 0.099212 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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