Python相对C++和Java来说,是解释性语言,非常适合来编写脚本。" Y( `) v) \" R/ K O {& i
很久之前就开始学习Python的语法了,今天写了第一个Python的脚本,来简化我的一些日常工作。0 [9 B- |# y- N6 }. Y s
! R2 T/ X! R3 G" v( \4 S
我平时学习的时候喜欢新建一个word文档来记笔记,并以当天的日期来命名。就像是酱紫:
: u3 k( P5 p+ E0 I2 N% H- ~- j/ a! b( T; M a4 W
; @+ E0 P2 ]% r0 ^# h/ q
# s" S$ B! p3 L" Y& u
于是我每天都得苦逼的先看看今天是几月几号,然后新建一个word文档,然后小心翼翼的打上2014-04-15之类的名字。虽然也并不多麻烦,但是还得经过脑子来想一想。5 {3 o! c* c9 L
9 O3 T3 ]: t; K8 D然后我写了一个自动根据当天的时间来创建对应命名的word文档的函数。$ T7 s: C! m( S! |2 X T# S
- E& F1 c, {; t( r4 g8 d6 W7 U$ H
并且有时候新建了一个文档,到了一天结束的时候发现也没写任何东西,于是一个空文档就放在那了,等空文档积累多了,一个一个删除也稍显麻烦,所以我又写了个自动删除目录下的空文档的函数。' c2 ~% V" J% {6 Q% L: `
0 g$ r; Z: v' u! J A2 x
差不多这样子,我还加了个根据指定最小文件大小删除文件的方法。% j: P- D) B% W8 H; `1 Q3 S
& I5 R( J3 U5 |7 v& F: tPython代码如下:
# M* o* ?8 b# w8 X
: n9 r7 Q* H/ i9 G复制代码0 U% A( J( R) e* x! r* [% ]
import os
+ x) V+ V+ C2 E4 `directory = "E:\\学习日志\\"
; U+ h- t! p+ N$ ]0 Y; X/ U* Gos.chdir(directory) # 改变当前工作目录
0 i ]* _$ Z! w3 Vcwd = os.getcwd() # 查看当前工作目录7 q( {' g6 G9 ~! M
print("--------------current working directory : " + cwd + "----------")
: ^" H% I) S2 D% ?
& N6 {7 b/ k1 K2 ndef deleteBySize(minSize): f' M9 z2 N5 d$ j0 m# k
"""删除小于minSize的文件(单位:K)"""
" V" c& U' j/ x4 K7 u2 H# ^ files = os.listdir(os.getcwd()) # 列出目录中文件! A& {! _% I' n$ s! g, F. l$ t9 ~3 _
for file in files:
- ~* s# Y8 k3 _- e1 B, M; B: n' h# j ## print file + " : " + str(os.path.getsize(file))
' _6 e( D2 t# C5 N6 o if os.path.getsize(file) < minSize * 1000:
" U% H# H1 @4 G os.remove(file)
, J2 b) W+ I) _/ P$ l* ^: a: H print(file + " deleted.")
, _3 ~; _% o; [ return) R% b8 [# G, c* P/ M1 P
* M8 g# k) b* C2 p9 b5 Q# A! {def deleteNullFile():; K I( W1 l2 M* y
'''删除所有大小为0的文件'''" a+ o, u. B) [; O
files = os.listdir(os.getcwd()) # 列出目录中文件
9 a8 _/ R( `' ~! M for file in files:
- u; f, Y1 @7 `6 _5 d0 w if os.path.getsize(file) == 0: #得到文件大小,如果是目录返回0
& d! S. F, Z$ {" D B os.remove(file)
; Q. w( r. |, I/ r8 Y& D5 S print(file + " deleted")
" k. E6 M- K/ k1 ~& _2 Y return: [1 M% O0 h7 V" ?* i8 D$ _
?; g" r; Z: J2 C& E
def create():
J. ^# u8 f" @% Q4 c '''根据本地时间创建新文件,如果已存在则不创建'''* ]% J7 k& Z! N$ \
import time
: ]+ P" v7 u! f8 v #将指定的struct_time(默认为当前时间),根据指定的格式化字符串输出8 B1 }3 ^$ F& v6 B8 x, x
t = time.strftime('%Y-%m-%d',time.localtime()) ) V' c2 R7 ~& h& F8 i$ Y b" S) ] Y
suffix = ".docx"5 C5 X) `( e$ [8 U. \( {% x
newFile =os.getcwd() + "\\" + t + suffix : H; r5 Q, i! h. F0 z" r ~* Y
if not os.path.exists(newFile):* i9 k8 E" p0 p( J3 ]
f = open(newFile,'w')2 J- E1 X/ X! |1 c8 I, |
f.close(). ?3 y4 z+ E R) o7 O
print newFile + " created."
' |3 P3 [' _1 I) i6 \* B& w6 u8 [ else:) v" D; l4 f/ M7 O* G) T& S5 i
print newFile + " already exist."
% n! ^. `1 X/ }9 ^5 [1 }( Y return
3 K3 u! E0 ~+ u! X& d h' @1 B% u9 i7 s' k
hint = '''funtion :
J6 ~! s4 ^! ?' L/ O 1 create new file
- w0 ~8 H6 k: J) s 2 delete null file, S* W( p, |8 N% r- i! t
3 delete by size/ ^! Y$ d9 {3 ?0 P6 F, r: L6 Y9 q% N Z
q quit\n9 P" T" S' H$ T& V' d- S6 g9 L. T0 G g
please input number: '''
1 a; u; a) O! I2 ]while True:6 T; f# W, ]& W! R* O( H" ]2 j
option = raw_input(hint)/ |2 c4 X8 w: i5 V6 p$ @1 s# i
if cmp(option,"1") == 0:
1 k- Y. v$ u0 A) I1 G7 X create()
3 t9 @6 g, O) T5 b elif cmp(option,"2") == 0:
) F, h8 {- S! u2 a deleteNullFile()6 `4 n9 V+ g% p+ _% a* {
elif cmp(option,"3") == 0:
# b( ?' C. S, l7 V* w$ p/ ? minSize = raw_input("minSize(K) : ")' m" i' j. G, r* p; O5 y
deleteBySize(minSize)
! A8 I) N8 g, M8 M elif cmp(option,"q") == 0:0 u' `1 S1 Q5 R; {7 }' H) C
print "quit !"
9 l6 R* F% t2 m9 p break, n* x6 t* R' H0 E
else:
" Z$ s6 U& M' g% D s( {: H4 G# b( q* } print ("disabled input. please try again..."): Z) g$ u l) E4 m
复制代码" U+ n/ T1 \* |8 Q- P: w1 |
3 E: Q* Z' E3 M4 e. W. _
+ y$ z& M5 v/ [* v
主要涉及到的就是一些文件操作函数和时间函数。8 j" d! O; n( _2 K! } G
8 t( S* q$ d5 {. N5 H
这是我第一个正式的Python脚本,我发现解决问题的动力才是第一生产力!Python是一门脚本语言,应用性十分的强大,可以用来解决很多实际问题,也只有当你遇见了可以用Python来解决的问题的时候,你才能真正的提高自己的能力不是吗?% |' d; h2 t9 ]. H* V7 {# ^5 h
|