Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。; z/ F1 o- i; {" `% J/ ~
很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
) ^- Y4 J# Z1 t7 P& a! E: Y& Z: Q6 V, w+ D
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:6 N. Y; v" t8 [) i
% T+ u4 J; P0 M- m6 ?" P$ _, U0 q4 l9 `3 S0 y" V" x
% S' a6 X3 M& |9 E' F. @
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。6 a1 o' v: S6 H$ \9 o
# [- B* E; V& O4 @% Q
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。
1 s7 P8 L8 D6 x
/ c. t+ O% w: p( ]. E% i* ]* n并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
9 r3 b7 j6 f. B0 d _1 Z( N' c, L1 k7 L( m6 M
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。
# w* ?8 [# V3 o0 g' V% N% F3 D3 p0 w1 P4 B: N0 p) O
Python代码如下:
+ P3 r5 \5 p' {* U2 ]& j9 F Z& K
# P9 z5 }/ k7 l) h' i; `# t& z/ u6 l复制代码' p8 m7 M4 u; b: Y
import os* z; ]" D) H& \# j% [
directory = "E:\\学习日志\\"
0 D6 A9 d+ r" d# y" s* u2 ^; g5 p& j* mos.chdir(directory) # 改变当前工作目录
; I+ H- P( X' P: d- e4 qcwd = os.getcwd() # 查看当前工作目录
0 u1 c! r/ P W2 u# V V; kprint("--------------current working directory : " + cwd + "----------")
& ?- ?1 w }6 R) y2 Q; p9 E0 o0 J6 z \. U( K% `
def deleteBySize(minSize):" H) `9 G' a& u
"""删除小于minSize的文件(单位:K)"""
s: o2 R M& `4 k* _ files = os.listdir(os.getcwd()) # 列出目录中文件$ V8 `2 Q) @5 I
for file in files:" N0 O! K. {# \( j* w
## print file + " : " + str(os.path.getsize(file))
# x" _4 i% M6 X5 T) e if os.path.getsize(file) < minSize * 1000:
3 ]. n- b* P: }' C" J! N9 i0 g os.remove(file)
- i( ^6 k* |& O# I1 ^6 q print(file + " deleted.")* n) e2 M( l# b
return: j; Z; L0 o. ^2 Y6 r
3 H V$ l7 C) O( Vdef deleteNullFile():
' B1 X! ^% k& x" f! i '''删除所有大小为0的文件'''; Q8 N9 g# M, M" ?3 ]0 ^
files = os.listdir(os.getcwd()) # 列出目录中文件8 _+ k! R' ?6 G0 ~! o! n+ Y$ {% o" m
for file in files:, W2 ]( ~( n" [; L9 X% b' t
if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0$ k/ b5 a; ^# B! u/ C; o
os.remove(file)
6 `3 w6 n5 P5 G' U/ V G print(file + " deleted")" f4 f/ @7 i. w* e: w9 W# Z
return
9 {) }* n+ d# N' b0 E0 k t( r
4 E! Q5 x' c8 Q, [; h' \ Odef create():6 t9 \' D Y# i; b1 T- e
'''根据本地时间创建新文件,如果已存在则不创建'''& E: Q0 b1 s, R
import time/ a$ M5 @" e( p. V3 ~( t' @5 x N6 |
#将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
; s* {8 p4 D9 f0 J' r2 ^$ E t = time.strftime('%Y-%m-%d',time.localtime())
6 S1 p* L ~% w2 |* i9 c suffix = ".docx"
; U2 r2 @9 X, |, O7 ?6 {9 T newFile =os.getcwd() + "\\" + t + suffix
3 J0 O! [" M5 k! F+ Q, O if not os.path.exists(newFile):
8 R) G) L- @2 N1 b" K* ` f = open(newFile,'w')" Q( j5 a+ R5 ~% E
f.close()6 K- d" q! w1 A( a: r. U
print newFile + " created."
& W# f$ w0 f4 d% E8 j. r6 b9 N( C else:
( D* e4 d* w7 D7 @9 L- I1 P; _ print newFile + " already exist."
9 y' r" ?* K+ u; D% y return
[( I" w6 y" E& x# z1 m
" O( k3 W, b' w- m* v7 C6 @+ [hint = '''funtion :
; s& J: S/ i" v: |$ z# T* P# q 1 create new file6 C: S4 c, L' q" j: Q
2 delete null file) P6 M3 F2 z; u1 S, Q" a c+ {5 N
3 delete by size
. i2 R* r3 I! R, O$ |& q+ B1 w q quit\n
( y; k0 f/ l7 d' u9 dplease input number: '''
& x o; D; ?$ k. ^while True:
0 s5 T7 R% I% l+ E$ E( H0 ^& M option = raw_input(hint)
4 j) ~. @# Z. x2 X, ^ if cmp(option,"1") == 0:
4 _2 B5 s4 V& a3 O create()) z/ y2 X2 @3 |# J
elif cmp(option,"2") == 0:+ H, m6 q3 z L
deleteNullFile()' q( O* @- c$ z
elif cmp(option,"3") == 0:
4 O; g9 Q) c( i' [. B- ~ minSize = raw_input("minSize(K) : ")
5 y" f' |4 d( Q9 L( j+ W; N deleteBySize(minSize)
5 ^1 ~: i) g$ q$ d s4 l- W elif cmp(option,"q") == 0:. D1 W5 L W. {2 t7 ^& J+ S" `2 H
print "quit !"( b: Q9 [9 u" D1 L
break
8 r" R, q8 B1 U' E6 V else:9 _' \6 j( V, K) d" c9 H/ Q
print ("disabled input. please try again...")5 }% i6 q1 e+ d
复制代码
0 n4 q, ]9 w. A" e m4 S& Y2 b1 I# Q8 _: [( d0 R. ~1 k% f
2 H" l F6 R7 r
主要涉及到的就是一些文件操作函数和时间函数。
8 \! e5 K- o# L& ^! O
7 R; V+ `5 J. N5 j6 ^. T: ^这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?
, v/ n% H- W8 l9 E2 D f |