找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3048|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
6 G- S' ~3 `' g( j/ i! t* e! N很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
, b3 b7 m4 Z# K6 X/ j# k$ h0 k1 _7 J8 O2 P# ^' S
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:9 |7 M$ D, V' f% u
# H1 P" D( ~0 r
* _% T) W4 O( x
. H: W6 V! }. O8 w( ?
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。2 _* g" @' u1 V

+ D8 R' j/ W% v# z3 q$ F然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。* b, X8 U9 _5 i5 K

7 U2 x& \0 W4 b( i! O3 m并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。" j  X# l7 i1 O1 r

' j# _! t, I1 i. ]) _差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。, Y  h. z9 \* q6 m& d

# I3 I5 y7 @5 ]Python代码如下:
- g+ @& n1 m( }4 X' k/ ]5 R1 U! y
) c) a9 d$ l, c7 e$ z复制代码& z+ D' L# Z2 x% Y9 N6 q: [+ @
import os" A& L# E# b- ?5 p( N
directory = "E:\\学习日志\\"* ^0 d  h: f5 r: G5 C3 B
os.chdir(directory) # 改变当前工作目录) L6 s9 J8 G) u7 _0 `( z
cwd = os.getcwd() # 查看当前工作目录
& v" p& W/ g' Tprint("--------------current working directory : " + cwd + "----------")0 x" M$ J7 K& f
/ d$ Z- b/ E0 e: x, b
def deleteBySize(minSize):( T! Q) I1 @8 v# s* W& `! n
    """删除小于minSize的文件(单位:K)"""
+ y; I2 {9 D# ~* a. p6 R7 T    files = os.listdir(os.getcwd()) # 列出目录中文件
! T% n5 M( d; m& ^% j$ a0 M& W( Z$ m    for file in files:
* z0 F8 F9 F6 X; W+ a9 ?    ##    print file + " : " + str(os.path.getsize(file))
; y" \7 G7 C8 ]% j! W! Z        if os.path.getsize(file) < minSize * 1000:
! _) D% u) L3 d2 ]# ?! ^3 e* }            os.remove(file)
1 x9 f+ y4 k  {: a            print(file + " deleted.")0 i  d6 \7 s2 C$ p
    return
& d+ a  _1 F0 A* i# ~
0 T! }& f% C4 w! `, odef deleteNullFile():$ a4 ~7 Q, K+ H6 W8 K
    '''删除所有大小为0的文件'''1 f7 a/ M! J) T# ~
    files = os.listdir(os.getcwd()) # 列出目录中文件7 v# A/ E+ @1 _
    for file in files:
: q/ Y( {$ @7 |        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
$ G0 c: _( W8 e. p' z; z            os.remove(file)+ N5 E  z$ u  z2 v1 |- [. a
            print(file + " deleted")- t) m; w, u- W! e7 b
    return# x4 e; c7 @7 T. Y2 u# X
1 }1 u4 R6 L4 C2 m
def create():$ y, `, j- c" l$ L  v  Q0 F
    '''根据本地时间创建新文件,如果已存在则不创建'''
$ B9 O% D, Q5 @9 y0 |5 {9 w/ X7 ~+ d    import time
* W$ B; p% \+ y2 ?& L6 e    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出$ G  g) B0 Y- d; W% {8 h$ f
    t = time.strftime('%Y-%m-%d',time.localtime()) 4 u1 s' p# m6 y5 w6 C/ ]
    suffix = ".docx"' J- g- ?/ H9 c$ [) c
    newFile =os.getcwd() + "\\" + t + suffix 1 L5 h, A8 g) J$ R  y
    if not os.path.exists(newFile):! u4 ~! j( R+ g  F# V
        f = open(newFile,'w')
; M& f4 @: q# b+ l4 G$ ~        f.close()0 s5 |& ?& S5 t9 W8 |2 q, g
        print newFile + " created."! ]. T9 ]2 ]: E' F  d
    else:+ |2 G: X/ p' S9 [: [+ v2 x
        print newFile + " already exist."
+ o1 @, }% @: N3 _1 K' T* R* o    return2 Q; W9 g% m8 @( F: F

- _4 X. `  r. mhint = '''funtion :
/ R/ ^( @+ l& _1 s/ J        1    create new file
9 d/ T" O+ x& R        2    delete null file
: ^2 D( y: S% t+ \% p' H9 w8 z        3    delete by size
, |: l0 T( D+ |3 S$ C        q    quit\n
* K- P% s: y( h/ xplease input number: '''
. D. l5 x% {1 qwhile True:* ~8 e( E8 g4 p# ?4 }1 }! \* `
    option = raw_input(hint)
( \/ Z! E6 y1 A7 P    if cmp(option,"1") == 0:
1 c' ^: \: N! P5 N$ G        create()
" q1 @  l7 ]& S5 A    elif cmp(option,"2") == 0:
/ n  U) p. L2 s! ~2 N. m7 c5 j0 n        deleteNullFile()* y2 a% P/ ]; M& o
    elif cmp(option,"3") == 0:
3 N% ]+ Y0 ]$ X5 C+ p1 I9 \        minSize = raw_input("minSize(K) : ")
3 o, l. N( v) u. O        deleteBySize(minSize)
; f8 p4 H/ x  I- l! Y/ ]    elif cmp(option,"q") == 0:
4 c3 H$ Y, [) R0 B        print "quit !"
: s! ^/ v/ D: S+ e; p        break) o$ L" Y2 k0 ]% r! |' p4 Y! L
    else:
% h, |5 G+ ]; d* |6 t0 T$ i& j        print ("disabled input. please try again...")# p! _/ Y1 c7 d% P9 q( m
复制代码
8 f: K  [5 f! `! q
% c* m, E9 M1 R: }3 [3 O$ x4 m: O
6 A7 g; E" R$ P# S, V; D主要涉及到的就是一些文件操作函数和时间函数。
6 ^6 H& W0 q# F9 |) _7 b: I* z
1 l' S, m, |* R$ t这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?/ Z# r% T  H# ]& {
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-2 03:36 , Processed in 0.107791 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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