Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
! @2 O( H- J1 O. j很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
$ K$ I) h G. D9 M/ A1 u1 @& L- f, I3 C! U7 h: w2 A( ?! C0 n. _
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:$ _1 L% u/ H i& r
' d% `% Z( `- `/ {% H- m t/ g
8 A5 d1 [; B- G2 ~% q/ _* K, T3 f, w, t- l: z
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。
6 ]. s( L2 J% _% J2 G$ j! t3 K9 L/ p5 v5 T
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。
$ B+ m) w( }5 ^1 p
. R! k3 C: L" w& z并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。! m( q+ Z( p/ m% f8 N
$ `/ R& Z0 x1 N5 q4 r差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。
0 @0 C! P' K4 [3 j4 ~# m- q6 n# J3 s3 K! g) ~/ @
Python代码如下:" ~5 V R6 c }* ^. c% a2 @& b
" h3 B: |; i' A# }% c$ D
复制代码
. j. x: F" P% V }import os
: \. s1 m8 D- t1 Adirectory = "E:\\学习日志\\"; X6 D, s7 h3 m9 ~$ e+ c
os.chdir(directory) # 改变当前工作目录
; g% @' P" K0 w& M6 J2 m5 ccwd = os.getcwd() # 查看当前工作目录
/ _9 q# Y& o2 Z& Wprint("--------------current working directory : " + cwd + "----------"): n; y4 u# |; y1 e. x6 }
! I* a' p9 Y) S N; K1 i5 C* f P
def deleteBySize(minSize):/ @' V4 C4 M3 D. F+ c
"""删除小于minSize的文件(单位:K)"""* V+ @3 ~$ i3 j+ Q' v
files = os.listdir(os.getcwd()) # 列出目录中文件* L: Q ^; M9 c# n
for file in files:
. M: C9 b- Q2 H3 A) l& j% Y ## print file + " : " + str(os.path.getsize(file))
5 M, X" v/ S+ x7 C, e; b d if os.path.getsize(file) < minSize * 1000:& \5 Y! { D* h0 u! q& g- C. N
os.remove(file)
' u1 `8 a6 J' G% E, C print(file + " deleted.")
- C, z+ ~7 s( t0 T3 N return
3 D* z; {* Q2 ?$ |$ t5 _5 j( r+ o
$ E; B" Q4 R5 s9 \3 D& ldef deleteNullFile():0 z' S! _! T ~! m, U# k* ?6 e* X
'''删除所有大小为0的文件'''" A. K) T$ y4 c% U! _: {/ t
files = os.listdir(os.getcwd()) # 列出目录中文件
0 A6 z- X, V3 A$ v1 e for file in files:7 p( h, b# f* M" n/ R; q& B/ U
if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0& E. n$ F' G3 @4 A9 }6 S/ m4 @
os.remove(file)' u# H- t2 s9 [, l
print(file + " deleted")
, s P& z: k M1 y+ ] return
4 o& v2 F' i0 p* L$ Q; E2 K6 X$ d; l9 b: V9 X- h
def create():0 F4 V" ^) r2 b7 U; k, C
'''根据本地时间创建新文件,如果已存在则不创建'''
J$ I5 S. a% g S8 }3 f% c; w import time
: H1 Y5 X3 Q A #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出5 [8 {1 G! Y# _# V. m' ]
t = time.strftime('%Y-%m-%d',time.localtime())
5 k3 }; @9 P. P$ c suffix = ".docx"% L; l! }% G* V/ H' I0 I
newFile =os.getcwd() + "\\" + t + suffix * ?; f4 D0 Y2 {- q# {/ _
if not os.path.exists(newFile):% L8 s& ]6 A% a7 q. W! }
f = open(newFile,'w')4 A7 x# m& g0 {: U8 ]5 p6 G
f.close()
8 ]( `. E3 y; | print newFile + " created."8 ?- B/ }# v: |' R4 Y2 _- K& K
else:
' Q1 l" i) E2 q- I* z/ K print newFile + " already exist."
! F5 k7 e' M% r5 p% q) Q return
, v/ ~0 j6 G; O) |4 P% F: k: e1 x. c+ n1 n8 d3 c$ v
hint = '''funtion :
( ?7 m8 L; {; t# [8 L. T' K 1 create new file% v2 `* u- U. P) h
2 delete null file' u4 a& Z# b- i8 c& G* y
3 delete by size& n+ v. `/ d) i7 G9 y
q quit\n
; _9 c4 b. B8 w- Tplease input number: '''
% s3 `/ H7 V: S, R4 L. Jwhile True:
' g$ ?4 U/ n1 Q [% \ option = raw_input(hint)
! M1 h6 m; |( ]5 E# J* J7 M if cmp(option,"1") == 0:
# h! K7 V* j8 F" d3 Y! K+ T create()
7 v4 L* y1 ~# f7 v elif cmp(option,"2") == 0:( K/ M- H& T3 b7 Q3 B+ ~7 k
deleteNullFile()
3 O4 D3 z& A/ h8 f2 F; Q elif cmp(option,"3") == 0:
- s7 g \2 Z! C! g+ b1 s, a minSize = raw_input("minSize(K) : ")& U' e/ w% C( V
deleteBySize(minSize)
1 M! e( b) R8 j4 k+ g0 J elif cmp(option,"q") == 0:
2 n6 o+ }8 V# Z9 v4 t$ s2 }2 S print "quit !"
' s$ m( ?$ w1 U break
3 K( M8 Q0 z3 P8 ^ else:- T* h @' p1 S! P7 M3 X
print ("disabled input. please try again..."); f$ m4 p" j( h+ j0 j
复制代码- d5 W+ F [. H9 l, n9 @
, _" a1 I5 f5 R, c
$ Q2 Y- i( G" J, r. X6 @主要涉及到的就是一些文件操作函数和时间函数。% N8 U; P0 T7 a A8 [; N, ^
0 P( z& Y9 v' M; g) F' Q9 g( d C这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?% _2 e/ Y7 i6 h/ L
|