华强北电脑城 龙岗电子世界 龙华电脑城  凯尔电脑

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2921|回复: 0

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

[复制链接]
发表于 2011-3-31 21:31:04 | 显示全部楼层 |阅读模式
Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
/ G5 u' z; l+ C" S6 k" B/ ^很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
, K5 }& g* H4 `3 r( E5 [1 }( L% S' h& w' a: Y) }% x
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:5 ~- D, I% s7 I# O

$ B7 M: B' V; E7 e& M; S  K# \7 g' S1 \3 R- J: t. r9 ~, R

2 H$ B) D! @# |" ]$ G) M于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。
5 n8 G9 d, n0 g9 \' ~2 L5 K/ O
# }" ~9 r' {% i. _- n4 `6 m然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。9 K5 Y$ E% ^4 |& Y. `9 K
$ P7 V# K, K6 `7 q3 C6 y
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。. w0 ^1 Y  o, f8 D5 O

0 u. F9 Y' c$ [: M5 R差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。
: m" B3 R" K$ m8 b& k; n4 ]; e: q' j$ Y
Python代码如下:( T! ]1 c( U' M* r3 A; Z0 G

, _! j3 F! L. c' `9 L复制代码
9 Q9 X* G! O1 L: L- O6 ~, q# Q" ]import os
- I1 A/ P! {& @4 P- }directory = "E:\\学习日志\\"+ m8 S  P7 n  v/ ]; y  Z; l3 _8 ]
os.chdir(directory) # 改变当前工作目录7 `6 V: q+ f- R+ M
cwd = os.getcwd() # 查看当前工作目录( o9 [! C: P0 f( M, {- ~
print("--------------current working directory : " + cwd + "----------")) N: |5 p! M6 j. S

: M* b4 p& ]' g* S. ]/ v9 B8 l, ]def deleteBySize(minSize):& q* I* k! t+ S$ G8 E( h" z# q
    """删除小于minSize的文件(单位:K)"""# l1 S* ^3 x- [% w1 Y$ N& k, ?
    files = os.listdir(os.getcwd()) # 列出目录中文件7 w' \- g7 P& K6 \. M) B
    for file in files:
) V6 z: E0 p  @) w( _' j1 E! w    ##    print file + " : " + str(os.path.getsize(file))( F$ s- ?4 j# `5 F; P6 A4 j
        if os.path.getsize(file) < minSize * 1000:
9 c' K8 R- v' u" i" _4 ^  n            os.remove(file)' {) b% D; P. A9 O  m* x. @
            print(file + " deleted.")* e' Y$ D( G; d1 Q7 C5 q/ E
    return
, @) Z  W7 V  T
/ p: G: ?9 J% p9 @* g  Zdef deleteNullFile():
4 D  \( ]! M% t    '''删除所有大小为0的文件''': S$ Q, ]3 D' f: {# ~+ G
    files = os.listdir(os.getcwd()) # 列出目录中文件, l$ w. z, Q8 ~
    for file in files:% t& I' z6 C: w$ A# J) u
        if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0$ t- B6 i+ ]6 P" A8 t3 r
            os.remove(file)
! G8 b+ w* Z$ l: g% n( V( x            print(file + " deleted")
  N, s* f+ W- w" j1 ?    return+ q% b, |( m6 `+ X- C5 R
6 f7 ~% `7 P8 u
def create():
# ^+ H! j& |% ^7 Z4 T    '''根据本地时间创建新文件,如果已存在则不创建'''
/ y: y- n  F5 i! y    import time
$ [: h  i& v8 j9 n: y    #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出. q5 a* t) v! h0 ]1 B, r  M
    t = time.strftime('%Y-%m-%d',time.localtime()) 1 o/ o- a/ V$ Q, x
    suffix = ".docx"& `  o' g! V3 K+ J" A5 K9 u
    newFile =os.getcwd() + "\\" + t + suffix 5 g! p, s5 w8 \& q
    if not os.path.exists(newFile):
* ^- h+ j  N6 Z1 j/ c        f = open(newFile,'w')
3 x9 u1 ]9 c; d        f.close()  K& r  l0 h( c2 f. G, Q
        print newFile + " created."1 z& W: m1 Z* i- Z
    else:( p% c& v& t- y: L
        print newFile + " already exist."1 K1 ?* R2 K3 F8 }3 \, V! ~% r
    return3 d- ^  o( c6 g) z6 b3 g
" l! C4 M8 ~! Q7 d
hint = '''funtion :
$ i7 C* m+ a. b3 N0 M        1    create new file6 J" J: D. I. I1 R* m9 y
        2    delete null file9 ], d4 k/ x' N8 G/ [$ Y
        3    delete by size
$ R" W& }8 N6 ^, J) u! H        q    quit\n
" B( j6 b# m+ G  Bplease input number: '''
1 |7 ]: G; s. w* g' [while True:5 n; z( K- F" a% \
    option = raw_input(hint); N; N; l/ o, U% ^; z! m) S* w
    if cmp(option,"1") == 0:3 c3 U+ m1 _0 {# q" y
        create()' b0 U+ z$ e" |1 ^5 a$ p5 \" j
    elif cmp(option,"2") == 0:
; F' i5 e3 Y1 C        deleteNullFile()( ]; h0 r, W6 j( V( W  _9 B
    elif cmp(option,"3") == 0:7 |, Z6 i2 A  f+ q2 D
        minSize = raw_input("minSize(K) : ")
0 ~0 r; L7 X: z* j7 l3 c        deleteBySize(minSize). Z0 m0 m7 V% n0 F2 a
    elif cmp(option,"q") == 0:! W5 Y7 n. q; @/ O) b7 m
        print "quit !"
2 w8 b2 C: C( [( ~: b0 f* {        break
" F4 t0 E  T& r: N- v0 U1 o    else:  x* `& t. q1 P7 ^( `5 e% G# @
        print ("disabled input. please try again...")  F5 Z2 E+ R" x
复制代码
  I9 R/ t: V  E% L  W9 Y! Z
" T% N' W, e: K9 ]! Z* J, R
4 l: P6 E- i1 H2 O$ j3 F- ^主要涉及到的就是一些文件操作函数和时间函数。
" a7 V5 w: m+ z9 G5 q/ {& L2 C# S3 u% p" q
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?+ k4 |* P  Z% t# \0 K
回复

使用道具 举报

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

本版积分规则

QQ|华强北 电脑城 龙岗电子世界 龙华电脑城 pc4g.com ( 粤ICP备16039863号 )

GMT+8, 2025-6-19 22:43 , Processed in 0.098191 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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