Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
1 o: t- Q0 Y' J, W0 f* h很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。9 r1 M- B& Z3 E
, ]* k! |( l) t' R6 k2 i4 S3 O
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:
5 U! i+ _* |9 r: x9 A# u
- k O( R. C! U' P. P7 o5 O. n; l3 _$ R# Y/ g5 R
* `2 x6 g1 c w a6 L g0 C) b6 J3 E. h于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。* y w& b% d4 B/ |
) m/ O! t0 ^! O然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。
) j/ s' A* g* J# n2 N3 c4 g0 j+ b8 N
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
: v8 R5 q) j' D% R9 t- A/ ~
$ y$ Y I1 J" m差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。" M q6 \3 z1 A# V# [
$ u, g5 H6 U# q& `6 ~) q; m
Python代码如下:
2 z+ V& X, \! c: Z* j" X
$ I3 s5 v1 c* k9 \2 I复制代码
; a0 x9 e) ]3 I/ `. d$ limport os
9 Z5 _+ n/ j1 k6 J1 Idirectory = "E:\\学习日志\\"
/ e, p7 _& \4 N8 Q4 ]$ K) k% L4 h2 @4 Bos.chdir(directory) # 改变当前工作目录
# Z2 E8 |9 Q8 a# {cwd = os.getcwd() # 查看当前工作目录
# O# W9 c( @- `) j, Q+ }print("--------------current working directory : " + cwd + "----------")
* ]8 Q8 Q9 ~) |7 j% n {7 @
! `& g: S$ h* @* s" ~- T8 A1 w- Hdef deleteBySize(minSize):+ |9 I4 M3 N1 T
"""删除小于minSize的文件(单位:K)"""$ m |4 W' b8 d" `8 }& k
files = os.listdir(os.getcwd()) # 列出目录中文件+ A I) @( w2 r: E4 r* v
for file in files:
+ R* n. D( A* H$ Q9 x ## print file + " : " + str(os.path.getsize(file))
' @( o+ E! B% r if os.path.getsize(file) < minSize * 1000:. c- m9 [3 w: k8 ^+ H. [7 m1 t) N
os.remove(file)
6 G/ Z4 ]; G3 _( [. w3 V print(file + " deleted.")
# p+ @1 t( [+ @1 _; n$ T3 | return) W+ N; R! r2 L# I( E5 p
/ k- P; i" g# s+ J E9 T% F5 ~8 Ndef deleteNullFile():$ H z i. H" r' Q1 n( J% w
'''删除所有大小为0的文件'''0 B& b: ?7 U' E# N
files = os.listdir(os.getcwd()) # 列出目录中文件1 ]6 C( U, @( l# c" B" [1 m# ]
for file in files:) C1 ~" W+ C1 w
if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回08 T, Q- e& F) n( c3 x8 R8 ?
os.remove(file)
. i6 q7 I3 g5 a: z* F3 J G5 K print(file + " deleted")
" y9 p$ U1 u) @2 W return, ~/ ?. y; B: Z
( u" b- r) D7 b6 t+ B7 udef create():
" Y: f+ z1 [, s0 i! [ '''根据本地时间创建新文件,如果已存在则不创建'''2 a5 i& J: E9 F- v% d4 I2 l
import time
3 T0 b" l9 r+ E" M& H1 N #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
9 D' w5 {4 x A" v- S& p9 N t = time.strftime('%Y-%m-%d',time.localtime())
; f/ w5 ?! J" j5 Q4 S suffix = ".docx"9 G3 W \# p% o7 D" W
newFile =os.getcwd() + "\\" + t + suffix 8 T' p" W) _# d" V6 u
if not os.path.exists(newFile):
/ x: B4 l/ r. C; ]" G, p4 d7 p f = open(newFile,'w')' z. c, o; _( N2 C' E" L2 N; m
f.close()
& ~4 Y; _' V0 N0 ?+ I* N print newFile + " created."
- Z% s1 i6 [4 A' n else:
, H& b) W! N7 \5 }" M print newFile + " already exist."
# q2 d# j& h8 B: o3 U return
; b5 V7 P. [: c4 B' H4 N: J' G# f d' T, y9 M
hint = '''funtion :
( @) B8 |& `! T1 q9 d8 l 1 create new file
- r D: R4 q0 W. X) V& U 2 delete null file, e7 b/ i* d! F& t* j# d* I4 t8 E
3 delete by size" ~4 L6 W/ K z, I' c" B5 o `
q quit\n) T- k, K; U( k! c* Y8 I- w4 a
please input number: '''
4 o3 X7 [( V8 T) ]2 iwhile True:( V0 u6 l' o4 v" L4 O
option = raw_input(hint)- P) N# ^, l$ \
if cmp(option,"1") == 0:* B, Y+ c( @# ^, w' B: f
create()
0 e: _1 q5 p" }+ i7 D7 e elif cmp(option,"2") == 0:1 i: m6 p( z/ G' K- ` s
deleteNullFile()
2 e5 A# Y) z* C8 z* h$ S elif cmp(option,"3") == 0:
. L+ c! q6 E2 S$ Y% p& n minSize = raw_input("minSize(K) : ")
4 D9 F+ a G! f) K deleteBySize(minSize)
8 y- A0 P* U/ Z3 ^# B8 T7 P elif cmp(option,"q") == 0:1 V% M7 q3 y! W% k: A# J9 F2 z$ l D; G
print "quit !"5 ?" E3 \5 L1 H" k; X) k" n
break8 E u/ i' c8 P! v5 E0 w) s, j
else:
# J+ m3 u! g+ k1 Q: e* q T7 Y print ("disabled input. please try again..."): P' H. @" u$ h, M* C& J9 `
复制代码
, _! |2 A) g8 R1 n' Y3 j0 Q" O& E! U( R& t9 Q' ?
) P5 {$ s4 v$ h! y8 S7 d2 ?
主要涉及到的就是一些文件操作函数和时间函数。8 l) x: [9 H8 {1 X8 O7 T9 O
, c4 _. j# H7 a* Q
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?+ \, D5 ^2 Z/ j5 X1 B) s
|