Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。
6 G- S' ~3 `' g( j/ i! t* e! N很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。
, b3 b7 m4 Z# K6 X/ j# k$ h0 k1 _7 J8 O2 P# ^' S
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:9 |7 M$ D, V' f% u
# H1 P" D( ~0 r
* _% T) W4 O( x
. H: W6 V! }. O8 w( ?
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。2 _* g" @' u1 V
+ D8 R' j/ W% v# z3 q$ F然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。* b, X8 U9 _5 i5 K
7 U2 x& \0 W4 b( i! O3 m并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。" j X# l7 i1 O1 r
' j# _! t, I1 i. ]) _差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。, Y h. z9 \* q6 m& d
# I3 I5 y7 @5 ]Python代码如下:
- g+ @& n1 m( }4 X' k/ ]5 R1 U! y
) c) a9 d$ l, c7 e$ z复制代码& z+ D' L# Z2 x% Y9 N6 q: [+ @
import os" A& L# E# b- ?5 p( N
directory = "E:\\学习日志\\"* ^0 d h: f5 r: G5 C3 B
os.chdir(directory) # 改变当前工作目录) L6 s9 J8 G) u7 _0 `( z
cwd = os.getcwd() # 查看当前工作目录
& v" p& W/ g' Tprint("--------------current working directory : " + cwd + "----------")0 x" M$ J7 K& f
/ d$ Z- b/ E0 e: x, b
def deleteBySize(minSize):( T! Q) I1 @8 v# s* W& `! n
"""删除小于minSize的文件(单位:K)"""
+ y; I2 {9 D# ~* a. p6 R7 T files = os.listdir(os.getcwd()) # 列出目录中文件
! T% n5 M( d; m& ^% j$ a0 M& W( Z$ m for file in files:
* z0 F8 F9 F6 X; W+ a9 ? ## print file + " : " + str(os.path.getsize(file))
; y" \7 G7 C8 ]% j! W! Z if os.path.getsize(file) < minSize * 1000:
! _) D% u) L3 d2 ]# ?! ^3 e* } os.remove(file)
1 x9 f+ y4 k {: a print(file + " deleted.")0 i d6 \7 s2 C$ p
return
& d+ a _1 F0 A* i# ~
0 T! }& f% C4 w! `, odef deleteNullFile():$ a4 ~7 Q, K+ H6 W8 K
'''删除所有大小为0的文件'''1 f7 a/ M! J) T# ~
files = os.listdir(os.getcwd()) # 列出目录中文件7 v# A/ E+ @1 _
for file in files:
: q/ Y( {$ @7 | if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
$ G0 c: _( W8 e. p' z; z os.remove(file)+ N5 E z$ u z2 v1 |- [. a
print(file + " deleted")- t) m; w, u- W! e7 b
return# x4 e; c7 @7 T. Y2 u# X
1 }1 u4 R6 L4 C2 m
def create():$ y, `, j- c" l$ L v Q0 F
'''根据本地时间创建新文件,如果已存在则不创建'''
$ B9 O% D, Q5 @9 y0 |5 {9 w/ X7 ~+ d import time
* W$ B; p% \+ y2 ?& L6 e #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出$ G g) B0 Y- d; W% {8 h$ f
t = time.strftime('%Y-%m-%d',time.localtime()) 4 u1 s' p# m6 y5 w6 C/ ]
suffix = ".docx"' J- g- ?/ H9 c$ [) c
newFile =os.getcwd() + "\\" + t + suffix 1 L5 h, A8 g) J$ R y
if not os.path.exists(newFile):! u4 ~! j( R+ g F# V
f = open(newFile,'w')
; M& f4 @: q# b+ l4 G$ ~ f.close()0 s5 |& ?& S5 t9 W8 |2 q, g
print newFile + " created."! ]. T9 ]2 ]: E' F d
else:+ |2 G: X/ p' S9 [: [+ v2 x
print newFile + " already exist."
+ o1 @, }% @: N3 _1 K' T* R* o return2 Q; W9 g% m8 @( F: F
- _4 X. ` r. mhint = '''funtion :
/ R/ ^( @+ l& _1 s/ J 1 create new file
9 d/ T" O+ x& R 2 delete null file
: ^2 D( y: S% t+ \% p' H9 w8 z 3 delete by size
, |: l0 T( D+ |3 S$ C q quit\n
* K- P% s: y( h/ xplease input number: '''
. D. l5 x% {1 qwhile True:* ~8 e( E8 g4 p# ?4 }1 }! \* `
option = raw_input(hint)
( \/ Z! E6 y1 A7 P if cmp(option,"1") == 0:
1 c' ^: \: N! P5 N$ G create()
" q1 @ l7 ]& S5 A elif cmp(option,"2") == 0:
/ n U) p. L2 s! ~2 N. m7 c5 j0 n deleteNullFile()* y2 a% P/ ]; M& o
elif cmp(option,"3") == 0:
3 N% ]+ Y0 ]$ X5 C+ p1 I9 \ minSize = raw_input("minSize(K) : ")
3 o, l. N( v) u. O deleteBySize(minSize)
; f8 p4 H/ x I- l! Y/ ] elif cmp(option,"q") == 0:
4 c3 H$ Y, [) R0 B print "quit !"
: s! ^/ v/ D: S+ e; p break) o$ L" Y2 k0 ]% r! |' p4 Y! L
else:
% h, |5 G+ ]; d* |6 t0 T$ i& j print ("disabled input. please try again...")# p! _/ Y1 c7 d% P9 q( m
复制代码
8 f: K [5 f! `! q
% c* m, E9 M1 R: }3 [3 O$ x4 m: O
6 A7 g; E" R$ P# S, V; D主要涉及到的就是一些文件操作函数和时间函数。
6 ^6 H& W0 q# F9 |) _7 b: I* z
1 l' S, m, |* R$ t这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?/ Z# r% T H# ]& {
|