Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
1 C! D6 S3 X. D( {' s2 b$ p9 o. @很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
i# g% O! l5 C1 b2 W' O7 v4 j! w' ?* A( C
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:
+ I% T4 E4 \. D: e+ E) e
' b9 F+ u& F4 L* p6 G" r" ^" L" B P: D: R; J6 X8 C
; j5 F8 [& a0 g' h1 O* a
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。3 V5 D- Q. L% z6 T" k
7 V/ I* o5 R {0 B' ]$ n4 ?
然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。. Y- y2 [* ^( P! \; \. t+ H
- ~, I5 v, ^. t+ }: H并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。8 k6 a6 |$ m; X2 [6 t
$ Z" @$ b4 S5 m& N4 B差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。# T7 I. S2 G# x; G0 x5 Z! m, b4 T, j
( P, K& G+ M; s+ u8 `: V1 CPython代码如下:
9 V' \8 ?$ F. n5 N, F. r9 x5 g$ L/ ^, J E! R5 |5 A0 g
复制代码3 Z0 v* Q$ t) ^! Y; c' T: T
import os' J8 j3 N9 K8 e: `8 K6 h, ?0 p
directory = "E:\\学习日志\\"9 M' z! m! f: q( {" y+ ^
os.chdir(directory) # 改变当前工作目录' a* H# O. Q- b- C3 X ]
cwd = os.getcwd() # 查看当前工作目录5 D9 q& _9 y, G2 r8 h
print("--------------current working directory : " + cwd + "----------"). d* c% Q- Z" Y
4 n$ {( |/ L% w2 S B" d8 W
def deleteBySize(minSize):& ?; S- H; X$ S+ I0 D
"""删除小于minSize的文件(单位:K)"""
/ l( u# ^- O2 T" d, n, a- | files = os.listdir(os.getcwd()) # 列出目录中文件* ?3 e0 R% u' T8 p$ J9 m- Z
for file in files:
2 H- w) t1 L* S3 C3 l" ^, U ## print file + " : " + str(os.path.getsize(file))" K7 ?% a u# L! b$ t
if os.path.getsize(file) < minSize * 1000:6 _ b8 Q6 v9 x5 Y# g
os.remove(file)) {0 Q, D7 Z$ o7 {6 S w! t E
print(file + " deleted.")
d8 h# C: R* P) s return
% ~0 i6 p3 z2 l1 k$ N
! z& ^0 I0 `6 C- D/ i( ?def deleteNullFile():- l, _1 [# K& |3 G
'''删除所有大小为0的文件'''* j K F7 R. Z
files = os.listdir(os.getcwd()) # 列出目录中文件/ N! E- A/ d$ B6 @8 S/ C) g
for file in files:
1 [2 d7 E7 O4 U* { if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
/ n1 j. B5 ^. `( ~0 ^ os.remove(file)5 k' i* U& A3 ~3 t+ E2 r" e1 z
print(file + " deleted")
- ^1 U; H# l" K4 G2 E1 i return0 ?' O! a; L8 w5 z4 t
1 _' C2 a1 d6 n- K e% ddef create():
$ t5 r! L, w2 u" K x& Y '''根据本地时间创建新文件,如果已存在则不创建'''! @; a) z' O7 k; W
import time7 ~: z% |5 y" Q# t' |
#将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出
; e/ K3 ^0 f+ J1 A t = time.strftime('%Y-%m-%d',time.localtime())
7 G. M9 Z# c& }6 f- s; F suffix = ".docx"# }0 n) x% J: W, L5 I5 D0 L
newFile =os.getcwd() + "\\" + t + suffix 7 f' Z+ D2 X6 W
if not os.path.exists(newFile):
1 H* S: L( G% J) _$ @+ F# T: [. z2 {3 d f = open(newFile,'w')
% z- @* h {6 D f.close()
4 t7 k2 [0 g, z+ E) Z: E* ^" l( O print newFile + " created."
' v- M% e$ u- d4 N) h else:
5 x+ h% q5 R9 A. q) ? print newFile + " already exist."9 G: i4 i; [& s! Z, X
return" i' t9 H+ m3 K! w" {) |
* F7 J$ B4 ^% [hint = '''funtion : 7 X0 S( R9 z4 F) t3 K
1 create new file O. e2 I+ |5 K0 W' B7 g# \
2 delete null file9 |- \6 _4 Y. K2 E. x5 I6 y
3 delete by size
2 R2 D2 H0 \0 Y% G1 Z+ Y4 ]' G q quit\n7 N- k7 U) j2 v4 x& \0 m4 B) D
please input number: '''
5 }; Z9 A- ?' G; o' p3 B$ ?while True: g. b$ ~7 h" `# _# p( t6 ?9 R
option = raw_input(hint), P* E; x$ R, q2 a- |
if cmp(option,"1") == 0:1 \0 G0 y e1 p3 k# Z' d; _+ W
create()
1 G* o' G' U+ J; E( A elif cmp(option,"2") == 0:) ?% S' G4 }8 W6 D
deleteNullFile()
: i* ^8 V4 n6 n# t* Q8 g elif cmp(option,"3") == 0:, a; B& b3 n( i# g9 d, J% m
minSize = raw_input("minSize(K) : ")
5 T7 L! v$ R1 ?) K' w9 `7 ] deleteBySize(minSize)
3 ]/ Y2 j: h4 R7 C1 E4 | elif cmp(option,"q") == 0:
$ z- c/ @, v, ]% z- z; s1 u$ j print "quit !") o. W- ]' i5 Z
break
8 o' n1 d3 B) ]5 l else:
2 e H" _' O0 {1 q# l4 o k print ("disabled input. please try again...")
8 ^' I6 p4 n) H3 P' V1 w复制代码
/ ]4 d& {0 y, k- [& A9 c2 D3 I* w, V9 g8 y) X
4 V. q' n% H4 W* h+ x
主要涉及到的就是一些文件操作函数和时间函数。
( u: s4 @7 M5 [5 x3 w( K( ^) h* }, v
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?
3 r3 c& B# @7 U6 [ |