找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3122|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
) u% p- p3 v, p( c, e很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
* Z' j% p  {3 M6 `+ V6 h; [
1 P) Z+ Z! n% l0 k2 r我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:
  y- V, _1 t: d9 ~
. p# V0 L' v6 D0 r' C4 O
; }+ Y' J$ \; n0 C
. F0 g; t8 v  h% ^0 P) R于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。0 M* n" \# L) t' \1 S
7 k! F" @) t1 ?0 n3 ?- [  u9 M
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。1 C1 {' C( F* U$ o$ z

) _* M2 l2 E5 J/ c; T并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。# l4 {$ |0 b5 z! C7 J$ |

, M; w& t: \$ d5 |9 @! e* w; s0 o; U差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。
+ x8 v8 I) ~8 `/ U+ w( f" Z* b  d* s7 B* b9 c0 R8 o
Python代码如下:
+ d, U- y2 t0 |" }
: y9 N6 y7 C9 T& d: x% Q复制代码$ U% b/ m6 @* S1 [6 I
import os. ]' N4 e2 o4 r) ~
directory = "E:\\学习日志\\"
( n: G7 @3 l9 ^9 O' V7 gos.chdir(directory) # 改变当前工作目录
! h0 U4 W2 y! `$ ycwd = os.getcwd() # 查看当前工作目录5 b; ?: q$ q" d  n8 ]) O: M; u
print("--------------current working directory : " + cwd + "----------")& r0 `" p! x7 B9 a7 C7 k" B" k
7 Q  a5 Z' q9 }( ~( z3 n) u
def deleteBySize(minSize):4 w- f7 [8 M4 f- W4 y
    """删除小于minSize的文件(单位:K)"""& [* o: c; S& ?
    files = os.listdir(os.getcwd()) # 列出目录中文件4 M6 O1 }' h) i+ p
    for file in files:
9 V# t" p: Z+ U# H( _    ##    print file + " : " + str(os.path.getsize(file))
$ n* Q& `1 g0 p6 D' A        if os.path.getsize(file) < minSize * 1000:
% f3 C# D; e( k2 E8 }8 @$ o            os.remove(file); T9 y) M3 {- L+ C  v$ |) f
            print(file + " deleted.")
1 k" k* C% z) V( V$ e0 G    return6 }% c8 ]. Z1 @$ X* C* n
1 z8 G% h+ g* i
def deleteNullFile():
' v: {& z9 Y) M' K. w+ \% w2 N, [    '''删除所有大小为0的文件'''
* p9 i- f/ H: d& v- L9 Z    files = os.listdir(os.getcwd()) # 列出目录中文件
0 r$ m+ y6 w% E, K' X% C* p    for file in files:
, c3 }- I( r* a- e8 V4 R$ B! J( @) _        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回07 y! U" H8 y7 y$ W- p$ e
            os.remove(file)
1 B3 c( B6 L, X% Q. b/ U4 Q            print(file + " deleted")
( m: i9 j2 N% F& N/ H' ~6 F    return- N0 j3 t' ?2 \! @% E  v
+ O  Y$ u5 D3 k  K1 ]; ^  D6 Z
def create():
; Z1 o$ X, d  d$ x, D1 @    '''根据本地时间创建新文件,如果已存在则不创建'''
* _+ I. N8 D" E( b% Z    import time9 F- g7 [" t! {0 j. H9 I" r( y
    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出- [& ]; B+ Z7 a
    t = time.strftime('%Y-%m-%d',time.localtime()) 1 a" ~& F$ l4 C# {* N
    suffix = ".docx"
- J  L7 |7 R$ d7 J1 H0 P1 q    newFile =os.getcwd() + "\\" + t + suffix
3 i' R' v6 F5 s    if not os.path.exists(newFile):
# z1 k7 F4 T- C8 O% u        f = open(newFile,'w')
6 C1 S! @8 U+ |. r3 e        f.close()$ V7 m/ {( S. U9 L* N$ ]6 G
        print newFile + " created."# L4 R  a4 G, I& N0 J( f
    else:
$ D' d4 b, E. P+ V  R0 O# }        print newFile + " already exist."1 M1 m/ ?% C+ t6 D! L: k# t
    return1 R. ?1 ^4 a6 i1 ^) T8 u
8 X1 A/ f7 ^3 _( K
hint = '''funtion : / b+ `0 a7 h& ^$ ]8 q
        1    create new file: N# l" _& Y' j: z/ L3 o
        2    delete null file
" u) o% }+ q% |7 S: ^        3    delete by size
  \, u. g+ o  G( g3 r. l% R        q    quit\n
2 r( U! i; A& G6 M" b( w: G5 Cplease input number: '''
5 H7 o* \- ?3 p: {% S0 Ywhile True:& |% W- k8 d+ V/ J* }
    option = raw_input(hint)1 P  J0 M) I! _  Y
    if cmp(option,"1") == 0:) l7 }$ B. `+ A, E
        create()
* s; f. n+ x, M0 C: a    elif cmp(option,"2") == 0:$ s: v' |% A( o: ]; w0 l
        deleteNullFile(): K7 m* r7 q8 i& H1 \0 d
    elif cmp(option,"3") == 0:
& ^8 O) O# X8 K4 X) z, y  ~        minSize = raw_input("minSize(K) : ")
' n+ M  ^" K- M0 Q        deleteBySize(minSize)
$ b9 u, k1 c2 C  ?, d7 W8 x    elif cmp(option,"q") == 0:
5 S" G: r  v. Q* @! K3 C7 c; j" Z        print "quit !"
8 J: J$ \6 s( k        break- \7 S& i( r9 M5 `( w  @2 l
    else:
9 s- m/ \6 W0 W+ o        print ("disabled input. please try again...")
6 P1 Q0 R' C  i' B. L& j# f! Q* A复制代码
6 _) O% [& |5 D! i4 a+ X& k/ I. B, d. f3 s: V) q

; D" V2 Z( L& c& G+ A1 k! M; d- i主要涉及到的就是一些文件操作函数和时间函数。
% Q4 X: t) f) ~
& w' {. G  H; r: D这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?
4 A8 q( w9 V9 B1 V) y, F! ?
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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