找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3051|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
  w' }' N7 P2 t/ h' v' M" K5 {* v很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
* f4 f" l$ p. P2 [
$ m, p/ h8 Z- j) O4 Z* p我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:& Y. e9 r* @+ ?$ F+ V

4 {7 d! D- @# C! I( ]/ V1 n% K  ~6 G- N. Q: d7 s( a7 g

6 r  L3 q" c3 l4 T$ b: _5 ?于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。
* [/ A, ?* r& s5 p# A9 H
& r' W' M( r2 `  ~' ~; p. M7 E然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。1 w+ v, M2 |0 {& x% [( P/ F

% d$ M5 Q' W  W$ S1 k. Q  g并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
: E# u& b% {$ U4 P5 y: K4 y  [
, h, E8 R0 Z8 L8 }差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。, Q8 {& v; k& H3 I# N/ z) e

; Y/ N: [. c6 ~- f' hPython代码如下:0 I3 t2 g* ]# ]# j/ x2 j' @
( y, ?/ o$ o: g3 Q2 s( H
复制代码
) K9 k" z0 c2 \/ O3 N& K' V. Eimport os
& M3 T0 ~% q; Q( r% s3 \  cdirectory = "E:\\学习日志\\"1 f( c. q4 W3 |" G: N0 w
os.chdir(directory) # 改变当前工作目录3 \5 d- J; K& P$ j" w
cwd = os.getcwd() # 查看当前工作目录% k$ e! V1 D; f
print("--------------current working directory : " + cwd + "----------")3 m0 G9 U  G2 x5 Q: Y2 m' ]4 s
' ?' A# K5 n/ d6 z, L! b! q" Y3 B
def deleteBySize(minSize):% O9 \" G+ ?$ ~
    """删除小于minSize的文件(单位:K)"""* S, j  t+ e3 q! S( i  ?
    files = os.listdir(os.getcwd()) # 列出目录中文件
/ E  u. a' L5 g. l, m: ^    for file in files:) d& ]: ?- r* m6 L1 G
    ##    print file + " : " + str(os.path.getsize(file))
2 d6 ^- U& J+ W        if os.path.getsize(file) < minSize * 1000:
. I2 T7 d: ]/ H: R! o) O6 j            os.remove(file)8 H+ j) b$ X% P6 X/ O8 Z
            print(file + " deleted.")# Z( x* [1 M+ `* g, b
    return7 i- @# a4 R: q* C; O
8 ~9 P. q: _1 `3 ]; F4 ]7 s
def deleteNullFile():
: N# u5 ?8 D7 }2 h7 w& \( Z    '''删除所有大小为0的文件'''
3 u! r9 Z8 x5 J    files = os.listdir(os.getcwd()) # 列出目录中文件
4 U$ Y: b1 x3 G- B    for file in files:
. u0 Z, N; C4 n        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
, |. ~! j' i; X6 [) s2 U, ]            os.remove(file)
" a1 y  ^  t+ X) a5 h4 \8 X            print(file + " deleted"): z8 g: A5 D" N: p4 K, m
    return
# h% |4 ?; H1 x5 F- j. V0 ?2 g+ J5 D# r+ O$ b& R
def create():
$ Q! N& ~2 b# y* ^& J% b: b    '''根据本地时间创建新文件,如果已存在则不创建'''
; Z6 w! W( L: J( w    import time
9 t/ v7 A1 |- P2 _    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出  \6 D, f/ W: {- r
    t = time.strftime('%Y-%m-%d',time.localtime()) & h6 h7 M( i/ p2 d) L: s
    suffix = ".docx"
/ ]) B1 F% l& ~1 ^# s. K    newFile =os.getcwd() + "\\" + t + suffix 9 q/ M4 G. O' ]0 z  P6 {% O
    if not os.path.exists(newFile):
& G# Y" i. d8 k0 o' G        f = open(newFile,'w')
4 C* j) o8 u1 C' u) H        f.close()  A4 E3 ?! \' X: j' F. d. k
        print newFile + " created."
, m! f- e- c5 }" O) ]6 ]9 y2 I    else:2 G7 D% G! ~9 Q1 z# x- h
        print newFile + " already exist."4 I2 p5 h$ M% q
    return
( P) `+ S. |! F% L. J0 I
: K# n3 l7 \5 K: l" c8 l8 Whint = '''funtion :
* e1 }! J9 M# O+ l        1    create new file7 ^2 E+ s; C8 o4 \
        2    delete null file
% W2 i( D% t  E( l& G        3    delete by size
* ^5 W2 _( Z+ _5 O) r0 d/ b" n" V2 o        q    quit\n
% m0 p& F" z3 b/ e2 L' @please input number: '''
9 I7 s) e. E9 l7 }while True:
" q( a! S+ V! Y4 M# P    option = raw_input(hint)9 y/ Z/ M5 w1 o% `/ {/ |* t
    if cmp(option,"1") == 0:
' ~# }) N9 V( x4 ]* s/ \6 r" `  F        create()
, W( t8 r+ Y, t4 P( D    elif cmp(option,"2") == 0:
0 c& ]& p. Z& X        deleteNullFile()
5 E; l8 r" M" {: ^( |    elif cmp(option,"3") == 0:
- I8 K8 B) u6 i4 a        minSize = raw_input("minSize(K) : ")
7 t# \6 y3 O# g4 F) Q  b) O        deleteBySize(minSize)
, r9 |1 _. F) G    elif cmp(option,"q") == 0:/ h* j' i8 H( y: ]6 M
        print "quit !"
$ A5 }" o- y9 @+ R" W1 u        break" A* R4 P& ?: Q$ I$ m/ f
    else:
, q( u: [- \; K4 {, ~. n( R        print ("disabled input. please try again...")
4 T4 ~+ c. @5 F  v5 {4 Z复制代码8 d$ {; o/ W7 J3 `5 ]  a5 s

5 P, H, h. c' r9 U( o2 O4 b3 D6 J  p- _$ c# S; m
主要涉及到的就是一些文件操作函数和时间函数。
( P  I; ]) B3 p9 T+ _1 c9 j9 h: y' r9 q$ s# E, J5 d6 {
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?
3 n. h* C3 e! |5 t
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-2 09:38 , Processed in 0.096785 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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