Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
- _8 ]$ J) m* ^9 A0 n+ V很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
' p s% g9 Q. Y& Y- i1 J
' B _( M" U6 w5 ]* |6 F0 s3 H6 k我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:
7 m/ B/ @$ k/ N. }; v/ |" }# ^5 U' E7 q8 F4 P& A
! W# I- Y7 s. ~; g$ Y- ~
5 d' n( M7 ~2 y0 C1 Q于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。/ M! A) U0 |4 ?5 A" V/ P
/ S1 S6 A' q9 v3 t& i* E
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。
k3 W7 p- R/ r. R8 d9 \# \4 D# n: ?: u9 p( s7 s% h" e: d
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。
9 O" n" }' K$ b
/ [0 A- X O/ Z' J6 S差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。
& S3 \6 Q* z# r4 o' c* M, M: r* D3 [ P2 b. K1 P% {" N8 n
Python代码如下:8 a6 D* Q6 I1 z4 N9 y( F
' p' c& [+ K. P: [; v. X复制代码6 m$ o0 f/ G, ^& n9 S0 Y
import os. P( |# ^7 V _/ _
directory = "E:\\学习日志\\"6 _: I X, V3 n( V) ^5 d" I8 v
os.chdir(directory) # 改变当前工作目录
3 b* t( }& u5 _0 Rcwd = os.getcwd() # 查看当前工作目录
9 u! n* H6 O9 m- cprint("--------------current working directory : " + cwd + "----------")
9 k. ~. s7 V% F+ m/ o. G. O6 b( P0 i n
def deleteBySize(minSize):
2 D7 ]6 o) V8 |0 L, a3 R """删除小于minSize的文件(单位:K)"""3 m7 q, H) C8 M3 X
files = os.listdir(os.getcwd()) # 列出目录中文件4 [; s5 Y. ~4 L3 P% N X
for file in files:5 n4 t: Z+ R- x
## print file + " : " + str(os.path.getsize(file))
7 M8 `/ i# d4 [; d* d' {+ J% k if os.path.getsize(file) < minSize * 1000:/ X) @( d4 J+ N4 B1 _
os.remove(file)
0 A. G4 N' ~/ `8 d print(file + " deleted.")
7 Q: @+ c* o/ P- C* D- ~6 U( ]0 c return2 \5 F* R% B" K; K0 d2 H; k* a
5 `5 C, ]5 a5 o+ W$ ydef deleteNullFile():( x8 C, i9 O; Q8 u
'''删除所有大小为0的文件''': J9 W5 y9 {/ A
files = os.listdir(os.getcwd()) # 列出目录中文件3 \! [ }7 u9 C5 I
for file in files:
" Q0 D" t! s; S1 A! {7 _: y if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
7 K; `# ~, @: {/ s os.remove(file)
# v3 E7 @! E7 b8 E. C- N print(file + " deleted")+ @3 w d; P1 c
return
9 S# X) O/ @6 [6 x! q- W" v
1 }6 s# r: U. P9 [# @def create():% D* F5 |8 M4 u# I, K6 K2 @0 W+ a
'''根据本地时间创建新文件,如果已存在则不创建'''
( ?- H& ^" f, n* ~ z+ ] import time
6 B' o& r" _/ r6 [ i5 @ #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出0 O+ F m0 M% n V8 D. B; l- C! \
t = time.strftime('%Y-%m-%d',time.localtime()) " o% D: T6 Q+ p- J; E h2 A
suffix = ".docx"5 ^! H" E# o: b; D9 g# }" R
newFile =os.getcwd() + "\\" + t + suffix
: A+ K [+ G* M. N& _) P/ F- {) b if not os.path.exists(newFile):, a6 O# `1 ^& w1 G3 r4 f
f = open(newFile,'w')
. x! Y& ~' C8 | f.close()
5 M- ^% i" B0 D print newFile + " created."
9 B+ [3 p$ h: ^- E$ K6 L+ O% g5 Q else:! W6 d+ d$ m, [" b$ m
print newFile + " already exist."
6 m& e; C) O4 A/ ~2 e# }2 d9 A$ Z return
/ k6 }0 C N5 E6 O( b* p- d, G
) \4 T# r2 z: M2 y4 J$ H; \hint = '''funtion :
$ U) _1 }9 ?- Q$ D# y6 q. X2 l! ^% z7 } 1 create new file, r* Q2 l& ^7 H$ w" v3 o
2 delete null file3 h& n. `7 q' S0 A# s& u
3 delete by size- p# X* Z; h; s1 l: z
q quit\n
! }8 k4 c; ?8 i# g0 c( C" g; dplease input number: '''6 B2 B* y% v/ h- W$ P
while True:
" T6 _: [% }* O+ s option = raw_input(hint)" ]; h& v }4 ?8 j" F
if cmp(option,"1") == 0:
3 i# Y1 e5 ^ p1 B7 Y& `0 L+ Z8 ] create()5 P$ Q. t7 R- `( a0 V- J3 t6 d
elif cmp(option,"2") == 0:) @. }, N% Q$ w
deleteNullFile()% f* D+ y( y6 r- Z0 V0 s7 x
elif cmp(option,"3") == 0:1 g6 e! N& e+ M8 f) W
minSize = raw_input("minSize(K) : ")5 t. d+ d4 \1 C9 _. k
deleteBySize(minSize)) o0 I& R5 U. e$ ~4 I
elif cmp(option,"q") == 0:
* r$ E" Q. I! A/ t5 `8 g* t8 o: ^ print "quit !"
# h1 H/ d7 U/ G! r M' A9 H9 r break4 T q/ @) r' c* |- o! k
else:3 v5 p, c- c9 C |
print ("disabled input. please try again...")
9 @" H( R) ~+ a/ t N复制代码
7 L6 d ~1 s6 a) z& _8 [7 Y- P( A2 c# E. O
1 ^+ a E6 }' H- I. S9 C1 A
主要涉及到的就是一些文件操作函数和时间函数。
$ J- B* l! v6 d# Q# H; v/ n+ _, v' b' B6 |1 t/ p
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?+ j; @; j' q% J( u8 n1 X! d1 X& j! Q
|