; c% z1 N9 S8 K/ q 2 p o* ~, W, J/ ?' utry:* q( T! q) O8 B
' ^# j$ ^2 ^9 V5 j
# remove old backup file, if any5 x( Y5 C- a" ]: o0 W' c6 s( W
1 r# B2 k) Q9 N
os.remove(back)% H( s$ X7 O }. T
& J c: o. |. W; ^2 M
except os.error: / G5 U8 A& h' l: y. H' { C. V1 b2 v+ g P6 N0 A
pass; m y# T! U" [# O
" N+ z' C ^4 o# |/ t& z7 F6 j 9 X) U: K3 }6 r8 f% I
' \5 }/ f9 T A6 T/ @# rename original to backup...7 T; l2 l+ p9 Q7 g
! Q* ]4 R1 Q V8 f/ m2 L
os.rename(file, back) 0 l& e4 u- ]; q7 D- Y+ }( z* m) M6 v8 s7 S/ [& ~
& A6 N+ u7 H: q9 c/ F& F/ C* }: b, c
& c' [; O1 e+ |5 X1 R4 u: L# ...and temporary to original. F$ ?4 z+ {* v' C3 `: w
, [9 \ U! l2 O8 hos.rename(temp, file) / l" Z# \9 u0 l2 G& J# p" b. I. H- j. j3 f# r
- p& P7 i; J7 j# D/ `' h0 q" X 4 W. q& i* T. y: c( l( X* c" v# try it out! 6 {+ b+ I0 r0 h ) e5 ^9 J" ^8 r7 T, b; T % w8 I0 g2 ~$ o& `+ L r0 w" V; y# K7 @9 B8 x0 K k
file = "c:\samples\sample.txt"0 F& \% P6 H" l
, E8 r: \* s3 H" x1 J
) I; W( B" h9 |' ^/ U9 d; @# b, c [1 G F, ?; [( h
replace(file, "hello", "tjena")# search for the string 'hello' and replace with 'tjena 1 M7 z V9 x' U; s# E . S: m% c3 |( [9 n5 a0 Mreplace(file, "tjena", "hello")0 \; O; Z$ R, n% O
' q& [% b# [6 P5 R0 W8 }* M+ c & [" s8 G* P6 S9 K. ~8 G; n. J ; v/ x$ b) f" d) k: h7 a; \2. 目录操作 # u" d8 z- }( J8 U9 E : R2 v" k! L/ o% _3 _os 模块包含了许多对目录操作的函数 - n% k: ^9 U7 n) [3 r/ M+ H& i0 J) C ; N& H$ j4 B3 }3 Z4 y0 L. slistdir 函数返回给定目录下的所有文件(包括目录)) u" q/ h1 z# q$ z, z, ~; H m
9 Y1 j7 v7 o1 O) A, v) z - F4 N" q d' b1 V" O( F' _5 U' f& N q) A2 H: A) Y
import os . \ I+ i0 s, ~& E4 `! _9 B$ F5 j) z9 o
for file in os.listdir("c:\qtest"):# c3 ~9 d& G- s: t. e* a/ y
1 N2 |3 Y/ E2 F% d; ~fp = open(file) ; ^. O4 B5 R+ m 6 O' F( I! b' V& N2 R( Qst = os.fstat(fp.fileno()) . S, ]- [" B0 w" C. d! S4 r/ Y & g- R# v3 l% P2 u" vprint "fstat", file . n) M1 v2 e* Q S7 R : S4 o# z6 M, z ]% F( [9 rdump(st) . Y6 S$ u4 `% \! W1 |& L9 s' d. J% r/ g, l) M/ Y% [9 s
- z8 v6 ]+ ~/ } 7 _/ h6 v, L) |/ T! H/ Fremark: os.stat(path/file)返回文件的对应属性值st_mode (protection bits), st_ino (inode number), st_dev (device), st_nlink (number of hard links), st_uid (user id of owner), st_gid (group id of owner), st_size (size of file, in bytes), st_atime (time of most recent access), st_mtime (time of most recent content modification), st_ctime (platform dependent; time of most recent metadata change on Unix, or the time of creation on Windows):% q! _8 d/ `# Y: L0 q! e5 \; X5 P ^* \
$ u. Y1 A- Y0 c: O& {# Y
os.fstat(path/file): h) W* `0 ^8 e o& H0 g
4 w G6 n: @, N8 b2 g: ^Return status for file descriptor fd, like stat().