Python文件、目錄和輸入輸出操作

讀取鍵盤的輸入

Python提供了input()內(nèi)置函數(shù)從標(biāo)準(zhǔn)輸入讀入一行文本渡讼,默認(rèn)的標(biāo)準(zhǔn)輸入是鍵盤骂束。input可以接收一個Python表達(dá)式作為輸入,并將運算結(jié)果返回成箫,如下所示:

biotest@biotest-VirtualBox:~/python3/03file$ cat input.py 
#!/usr/bin/python3

str=input("Please input:  ")
print("What you input is: ",str)
biotest@biotest-VirtualBox:~/python3/03file$ python3 input.py 
Please input:  Hello
What you input is:  Hello

文件的讀取

open()將會返回一個file對象展箱,基本語法格式為open(filename,mode),其中filename:包含了你要訪問的文件名稱的字符串值蹬昌。mode決定了打開文件的模式混驰,打開文件的模式有:①只讀;②寫入皂贩;③追加栖榨。這個參數(shù)是非強制的,默認(rèn)文件訪問模式為只讀(r)明刷。不同模式打開文件的完全列表:

模式 描述
r 以只讀方式打開文件婴栽。文件的指針將會放在文件的開頭。這是默認(rèn)模式辈末。
rb 以二進制格式打開一個文件用于只讀愚争。文件指針將會放在文件的開頭。
r+ 打開一個文件用于讀寫本冲。文件指針將會放在文件的開頭准脂。
rb+ 以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭檬洞。
w 打開一個文件只用于寫入狸膏。如果該文件已存在則將其覆蓋。如果該文件不存在添怔,創(chuàng)建新文件湾戳。
wb 以二進制格式打開一個文件只用于寫入贤旷。如果該文件已存在則將其覆蓋。如果該文件不存在砾脑,創(chuàng)建新文件幼驶。
w+ 打開一個文件用于讀寫。如果該文件已存在則將其覆蓋韧衣。如果該文件不存在盅藻,創(chuàng)建新文件。
wb+ 以二進制格式打開一個文件用于讀寫畅铭。如果該文件已存在則將其覆蓋氏淑。如果該文件不存在,創(chuàng)建新文件硕噩。
a 打開一個文件用于追加假残。如果該文件已存在,文件指針將會放在文件的結(jié)尾炉擅。也就是說辉懒,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在谍失,創(chuàng)建新文件進行寫入眶俩。
ab 以二進制格式打開一個文件用于追加。如果該文件已存在袱贮,文件指針將會放在文件的結(jié)尾仿便。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后攒巍。如果該文件不存在,創(chuàng)建新文件進行寫入荒勇。
a+ 打開一個文件用于讀寫柒莉。如果該文件已存在,文件指針將會放在文件的結(jié)尾沽翔。文件打開時會是追加模式兢孝。如果該文件不存在,創(chuàng)建新文件用于讀寫仅偎。
ab+ 以二進制格式打開一個文件用于追加跨蟹。如果該文件已存在,文件指針將會放在文件的結(jié)尾橘沥。如果該文件不存在窗轩,創(chuàng)建新文件用于讀寫。

下圖總結(jié)了這幾種模式(出處:菜鳥教程):

[圖片上傳失敗...(image-895a1-1551584864578)]

模式 r r+ w w+ a a+
+ + + +
+ + + + +
創(chuàng)建 + + + +
覆蓋 + +
指針在開始 + + + +
指針在結(jié)尾 + +

文件讀寫案例

下面的代碼會將一些字符串寫入到文件foo.txt中座咆,代碼如下所示:

biotest@biotest-VirtualBox:~/python3/03file$ cat write.py
#!/usr/bin/python3

# open a file
# If this file does not exist, python will create it
# You can use absolute path or current path;
f = open("foo.txt","w")
f.write("Python is a good program language.\n Yes, it is very good!\n")
f.close()

biotest@biotest-VirtualBox:~/python3/03file$ python3 write.py 
biotest@biotest-VirtualBox:~/python3/03file$ ls
foo.txt  input.py  write.py
biotest@biotest-VirtualBox:~/python3/03file$ cat foo.txt 
Python is a good program language.
 Yes, it is very good!

代碼解釋:open()括號中是文件路徑痢艺,如果不指明絕對路徑仓洼,則就會默認(rèn)為當(dāng)前目錄;如果文件存在堤舒,就打開色建,如果不存在,代碼會創(chuàng)建這個文件舌缤。

文件對象的方法

file對象常用函數(shù)

file對象使用open函數(shù)來創(chuàng)建箕戳,下表列出了file對象常用的函數(shù):

序號 方法及描述
1 file.close():關(guān)閉文件。關(guān)閉后文件不能再進行讀寫操作国撵。
2 file.flush():刷新文件內(nèi)部緩沖漂羊,直接把內(nèi)部緩沖區(qū)的數(shù)據(jù)立刻寫入文件, 而不是被動的等待輸出緩沖區(qū)寫入。
3 file.fileno():返回一個整型的文件描述符(file descriptor FD 整型), 可以用在如os模塊的read方法等一些底層操作上卸留。
4 file.isatty():如果文件連接到一個終端設(shè)備返回 True走越,否則返回 False。
5 file.next():返回文件下一行耻瑟。
6 file.read([size]):從文件讀取指定的字節(jié)數(shù)旨指,如果未給定或為負(fù)則讀取所有。
7 file.readline([size]):讀取整行喳整,包括 "\n" 字符谆构。
8 file.readlines([sizeint]):讀取所有行并返回列表,若給定sizeint>0框都,返回總和大約為sizeint字節(jié)的行, 實際讀取值可能比 sizeint 較大, 因為需要填充緩沖區(qū)搬素。
9 file.seek(offset[, whence]):設(shè)置文件當(dāng)前位置
10 file.tell():返回文件當(dāng)前位置。
11 file.truncate([size]):從文件的首行首字符開始截斷魏保,截斷文件為 size 個字符熬尺,無 size 表示從當(dāng)前位置截斷;截斷之后后面的所有字符被刪除谓罗,其中 Widnows 系統(tǒng)下的換行代表2個字符大小粱哼。
12 file.write(str):將字符串寫入文件,沒有返回值檩咱。
13 file.writelines(sequence):向文件寫入一個序列字符串列表揭措,如果需要換行則要自己加入每行的換行符。

f.read()

為了讀取一個文件的內(nèi)容刻蚯,調(diào)用f.read(size),這將讀取一定數(shù)目的數(shù)據(jù),然后作為字符串或字節(jié)對象返回炊汹。size是一個可選的數(shù)字類型的參數(shù)。當(dāng)size被忽略了或者為負(fù),那么該文件的所有內(nèi)容都將被讀取并且返回,如下所示:

biotest@biotest-VirtualBox:~/python3/03file$ cat foo.txt
Python is a good program language.
 Yes, it is very good!
biotest@biotest-VirtualBox:~/python3/03file$ cat read.py 
#!/usr/bin/python3

# open a file
f = open("foo.txt","r")

str=f.read()
print(str)
f.close()
biotest@biotest-VirtualBox:~/python3/03file$ python3 read.py 
Python is a good program language.
 Yes, it is very good!

f.readline()

f.readline()會從文件中讀取單獨的一行妙蔗,換行符為\nf.readline()如果返回一個空字符串寸五,說明已經(jīng)讀取到了最后一下梳杏,看下面的案例:

biotest@biotest-VirtualBox:~/python3/03file$ cat foo.txt 
Python is a good program language.
 Yes, it is very good!
biotest@biotest-VirtualBox:~/python3/03file$ cat readline.py 
#!/usr/bin/python3

f=open("foo.txt","r")

str=f.readline()
print(str)
f.close()
biotest@biotest-VirtualBox:~/python3/03file$ python3 readline.py 
Python is a good program language.

f.readlines()

f.readlines()將返回該文件中包含的所有行。如果設(shè)置可選參數(shù)sizehint,則讀取指定長度的字節(jié),并且將這些字節(jié)按行分割劲适,如下所示:

biotest@biotest-VirtualBox:~/python3/03file$ cat foo.txt 
Python is a good program language.
 Yes, it is very good!
biotest@biotest-VirtualBox:~/python3/03file$ cat readlines.py 
#!/usr/bin/python3

f = open("foo.txt","r")
str=f.readlines()
print(str)
f.close()
biotest@biotest-VirtualBox:~/python3/03file$ python3 readlines.py 
['Python is a good program language.\n', ' Yes, it is very good!\n']

另外一種讀取文件內(nèi)容的方式就是對文件中的行進行迭代霞势,如下所示:

biotest@biotest-VirtualBox:~/python3/03file$ cat foo.txt 
Python is a good program language.
 Yes, it is very good!
biotest@biotest-VirtualBox:~/python3/03file$ cat iteration.py 
#!/usr/bin/python3
f=open("foo.txt","r")

for line in f:
    print(line,end=" ")

f.close()
biotest@biotest-VirtualBox:~/python3/03file$ python3 iteration.py 
Python is a good program language.
  Yes, it is very good!

f.write()

f.write(string)會將string寫入到文件中斑鸦,然后返回寫入的字符數(shù)鄙才,如下所示:

biotest@biotest-VirtualBox:~/python3/03file$ cat foo.txt 
Python is a good program language.
 Yes, it is very good!
biotest@biotest-VirtualBox:~/python3/03file$ cat f_write.py 
#!/usr/bin/python3

f = open("foo.txt","w")

num = f.write("Python is a good tool.\n Yes, it is good!\n")
print(num)
f.close()
biotest@biotest-VirtualBox:~/python3/03file$ python3 f_write.py 
41
biotest@biotest-VirtualBox:~/python3/03file$ cat foo.txt 
Python is a good tool.
 Yes, it is good!

如果要寫入一些非字符串的東西, 那么將需要先進行轉(zhuǎn)換攒庵,如下所示:

biotest@biotest-VirtualBox:~/python3/03file$ cat string_trans.py 
#!/usr/bin/python3

f = open("foo1.txt","w")
value = ('www.runoob.com',14)
s = str(value)+"\n"
f.write(s)
f.close()
biotest@biotest-VirtualBox:~/python3/03file$ python3 string_trans.py 
biotest@biotest-VirtualBox:~/python3/03file$ cat foo1.txt 
('www.runoob.com', 14)

f.tell()

f.tell()返回文件對象當(dāng)前所處的位置,它是從文件開頭開始算起的字節(jié)數(shù)。

f.seek()

如果要改變文件當(dāng)前的位置,可以使用f.seek(offset,from_what)函數(shù)。
from_what的值,如果是0表示開頭,如果是1表示當(dāng)前位置,2表示文件的結(jié)尾场梆,例如:

  1. seek(x,0):從起始位置即文件首行首字符開始移動x個字符
  2. seek(x,1):表示從當(dāng)前位置往后移動x個字符
  3. seek(-x,2):表示從文件的結(jié)尾往前移動x個字符
  4. from_what值為默認(rèn)為0寞忿,即文件開頭。

看下面的案例:

>>> f=open('foo.txt','rb+')
>>> f.write(b'0123456789abcdef')
16
>>> f.seek(5)
5
>>> f.read(1)
b'5'
>>> f.seek(-3,2)
38
>>> f.read(1)
b'd'

f.close()

在文本文件中(那些打開文件的模式下沒有b的)辖佣,只會相對于文件起始位置進行定位卷谈。當(dāng)你處理完一個文件后杯拐,調(diào)用f.close()來關(guān)閉文件并釋放系統(tǒng)的資源世蔗,如果嘗試再調(diào)用該文件,則會拋出異常凸郑,如下所示:

>>> f.close()
>>> f.read()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: read of closed file

當(dāng)處理一個文件對象時,使用with關(guān)鍵字是非常好的方式。在結(jié)束后,它會幫你正確的關(guān)閉文件芙沥,如下所示:

>>> with open('foo.txt','r') as f:
...     read_data = f.read()
... 
>>> 
>>> f.closed
True

pickle模塊

python的pickle模塊實現(xiàn)了基本的數(shù)據(jù)序列和反序列化诲祸。通過pickle模塊的序列化操作我們能夠?qū)⒊绦蛑羞\行的對象信息保存到文件中去,永久存儲救氯。通過pickle模塊的反序列化操作歌憨,我們能夠從文件中創(chuàng)建上一次程序保存的對象甲抖∽佳瑁基本接口如下所示:

pickle.dump(obj, file, [,protocol])

有了 pickle 這個對象, 就能對 file 以讀取的形式打開柱衔,即x = pickle.load(file0)。file表示類文件對象唆铐,它有read()readline()接口哲戚,看下面的案例:

biotest@biotest-VirtualBox:~/python3/03file$ cat pickly.py 
#!/usr/bin/python3

import pickle

# using pickle module to save data object to a file
data1 = {'a':[1,2.0,3,4+6j],
        'b':('string',u'Unicode string'),
        'c':None}

selfref_list = [1,2,3]
selfref_list.append(selfref_list)

output = open('data.pkl','wb')

# Pickle dictionary using protocol 0.
pickle.dump(data1,output)

# Pickle th elist using the highest protocol available.
pickle.dump(selfref_list,output,-1)

output.close()
biotest@biotest-VirtualBox:~/python3/03file$ python3 pickly.py 
biotest@biotest-VirtualBox:~/python3/03file$ ls
data.pkl  foo.txt     input.py      pickly.py    readline.py   read.py  string_trans.py
foo1.txt  f_write.py  iteration.py  __pycache__  readlines.py  seek.py  write.py

在當(dāng)前目錄下生成了一個data.pkl文件,打開后是亂碼艾岂,現(xiàn)在不清楚這個文件什么意思顺少,接著還有一段代碼,如下所示:

biotest@biotest-VirtualBox:~/python3/03file$ cat pickle2.py 
#!/usr/bin/python3
import pprint, pickle

pkl_file = open('data.pkl','rb')

data1 = pickle.load(pkl_file)
pprint.pprint(data1)

data2 = pickle.load(pkl_file)
pprint.pprint(data2)

pkl_file.close()

biotest@biotest-VirtualBox:~/python3/03file$ python3 pickle2.py
{'a': [1, 2.0, 3, (4+6j)], 'b': ('string', 'Unicode string'), 'c': None}
[1, 2, 3, <Recursion on list with id=140696236160136>]

上述代碼解釋:

目錄操作

Python中的目錄操作有這些:

序號 方法及描述
1 os.access(path, mode):檢驗權(quán)限模式
2 os.chdir(path):改變當(dāng)前工作目錄
3 os.chflags(path, flags):設(shè)置路徑的標(biāo)記為數(shù)字標(biāo)記澳盐。
4 os.chmod(path, mode):更改權(quán)限
5 os.chown(path, uid, gid):更改文件所有者
6 os.chroot(path):改變當(dāng)前進程的根目錄
7 os.close(fd):關(guān)閉文件描述符 fd
8 os.closerange(fd_low, fd_high):關(guān)閉所有文件描述符祈纯,從 fd_low (包含) 到 fd_high (不包含), 錯誤會忽略
9 os.dup(fd):復(fù)制文件描述符 fd
10 os.dup2(fd, fd2):將一個文件描述符 fd 復(fù)制到另一個 fd2
11 os.fchdir(fd):通過文件描述符改變當(dāng)前工作目錄
12 os.fchmod(fd, mode):改變一個文件的訪問權(quán)限,該文件由參數(shù)fd指定叼耙,參數(shù)mode是Unix下的文件訪問權(quán)限腕窥。
13 os.fchown(fd, uid, gid):修改一個文件的所有權(quán),這個函數(shù)修改一個文件的用戶ID和用戶組ID筛婉,該文件由文件描述符fd指定簇爆。
14 os.fdatasync(fd):強制將文件寫入磁盤,該文件由文件描述符fd指定爽撒,但是不強制更新文件的狀態(tài)信息入蛆。
15 os.fdopen(fd[, mode[, bufsize]]):通過文件描述符 fd 創(chuàng)建一個文件對象,并返回這個文件對象
16 os.fpathconf(fd, name):返回一個打開的文件的系統(tǒng)配置信息硕勿。name為檢索的系統(tǒng)配置的值哨毁,它也許是一個定義系統(tǒng)值的字符串,這些名字在很多標(biāo)準(zhǔn)中指定(POSIX.1, Unix 95, Unix 98, 和其它)源武。
17 os.fstat(fd):返回文件描述符fd的狀態(tài)扼褪,像stat()。
18 os.fstatvfs(fd):返回包含文件描述符fd的文件的文件系統(tǒng)的信息粱栖,像 statvfs()
19 os.fsync(fd):強制將文件描述符為fd的文件寫入硬盤话浇。
20 os.ftruncate(fd, length):裁剪文件描述符fd對應(yīng)的文件, 所以它最大不能超過文件大小。
21 os.getcwd():返回當(dāng)前工作目錄
22 os.getcwdu():返回一個當(dāng)前工作目錄的Unicode對象
23 os.isatty(fd):如果文件描述符fd是打開的闹究,同時與tty(-like)設(shè)備相連幔崖,則返回true, 否則False。
24 os.lchflags(path, flags):設(shè)置路徑的標(biāo)記為數(shù)字標(biāo)記渣淤,類似 chflags()赏寇,但是沒有軟鏈接
25 os.lchmod(path, mode):修改連接文件權(quán)限
26 os.lchown(path, uid, gid):更改文件所有者,類似 chown价认,但是不追蹤鏈接蹋订。
27 os.link(src, dst):創(chuàng)建硬鏈接,名為參數(shù) dst刻伊,指向參數(shù) src
28 os.listdir(path):返回path指定的文件夾包含的文件或文件夾的名字的列表。
29 os.lseek(fd, pos, how):設(shè)置文件描述符 fd當(dāng)前位置為pos, how方式修改: SEEK_SET 或者 0 設(shè)置從文件開始的計算的pos; SEEK_CUR或者 1 則從當(dāng)前位置計算; os.SEEK_END或者2則從文件尾部開始. 在unix,Windows中有效
30 os.lstat(path):像stat(),但是沒有軟鏈接
31 os.major(device):從原始的設(shè)備號中提取設(shè)備major號碼 (使用stat中的st_dev或者st_rdev field)捶箱。
32 os.makedev(major, minor):以major和minor設(shè)備號組成一個原始設(shè)備號
33 os.makedirs(path[, mode]):遞歸文件夾創(chuàng)建函數(shù)智什。像mkdir(), 但創(chuàng)建的所有intermediate-level文件夾需要包含子文件夾。
34 os.minor(device):從原始的設(shè)備號中提取設(shè)備minor號碼 (使用stat中的st_dev或者st_rdev field )丁屎。
35 os.mkdir(path[, mode]):以數(shù)字mode的mode創(chuàng)建一個名為path的文件夾.默認(rèn)的 mode 是 0777 (八進制)荠锭。
36 os.mkfifo(path[, mode]):創(chuàng)建命名管道,mode 為數(shù)字晨川,默認(rèn)為 0666 (八進制)
37 os.mknod(filename[, mode=0600, device]):創(chuàng)建一個名為filename文件系統(tǒng)節(jié)點(文件证九,設(shè)備特別文件或者命名pipe)。
38 os.open(file, flags[, mode]):打開一個文件共虑,并且設(shè)置需要的打開選項愧怜,mode參數(shù)是可選的
39 os.openpty():打開一個新的偽終端對。返回 pty 和 tty的文件描述符妈拌。
40 os.pathconf(path, name):返回相關(guān)文件的系統(tǒng)配置信息拥坛。
41 os.pipe():創(chuàng)建一個管道. 返回一對文件描述符(r, w) 分別為讀和寫
42 os.popen(command[, mode[, bufsize]]):從一個 command 打開一個管道
43 os.read(fd, n):從文件描述符 fd 中讀取最多 n 個字節(jié),返回包含讀取字節(jié)的字符串尘分,文件描述符 fd對應(yīng)文件已達(dá)到結(jié)尾, 返回一個空字符串猜惋。
44 os.readlink(path):返回軟鏈接所指向的文件
45 os.remove(path):刪除路徑為path的文件。如果path 是一個文件夾培愁,將拋出OSError; 查看下面的rmdir()刪除一個 directory著摔。
46 os.removedirs(path):遞歸刪除目錄。
47 os.rename(src, dst):重命名文件或目錄定续,從 src 到 dst
48 os.renames(old, new):遞歸地對目錄進行更名谍咆,也可以對文件進行更名。
49 os.rmdir(path):刪除path指定的空目錄香罐,如果目錄非空卧波,則拋出一個OSError異常。
50 os.stat(path):獲取path指定的路徑的信息庇茫,功能等同于C API中的stat()系統(tǒng)調(diào)用港粱。
51 os.stat_float_times([newvalue]):決定stat_result是否以float對象顯示時間戳
52 os.statvfs(path):獲取指定路徑的文件系統(tǒng)統(tǒng)計信息
53 os.symlink(src, dst):創(chuàng)建一個軟鏈接
54 os.tcgetpgrp(fd):返回與終端fd(一個由os.open()返回的打開的文件描述符)關(guān)聯(lián)的進程組
55 os.tcsetpgrp(fd, pg):設(shè)置與終端fd(一個由os.open()返回的打開的文件描述符)關(guān)聯(lián)的進程組為pg。
56 os.tempnam([dir[, prefix]]):Python3 中已刪除旦签。返回唯一的路徑名用于創(chuàng)建臨時文件查坪。
57 os.tmpfile():Python3 中已刪除。返回一個打開的模式為(w+b)的文件對象 .這文件對象沒有文件夾入口宁炫,沒有文件描述符偿曙,將會自動刪除。
58 os.tmpnam():Python3 中已刪除羔巢。為創(chuàng)建一個臨時文件返回一個唯一的路徑
59 os.ttyname(fd):返回一個字符串望忆,它表示與文件描述符fd 關(guān)聯(lián)的終端設(shè)備罩阵。如果fd 沒有與終端設(shè)備關(guān)聯(lián),則引發(fā)一個異常启摄。
60 os.unlink(path):刪除文件路徑
61 os.utime(path, times):返回指定的path文件的訪問和修改的時間稿壁。
62 os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]):輸出在文件夾中的文件名通過在樹中游走,向上或者向下歉备。
63 os.write(fd, str):寫入字符串到文件描述符 fd中. 返回實際寫入的字符串長度

目錄操作的函數(shù)太多傅是,用到的時候再學(xué)習(xí),下面只列出幾個簡單的案例:

顯示某文件夾下的所有文件名

代碼如下:

C:\Users\20161111>type practice.py
import os
for filename in os.listdir('d:/Software'):
    print(filename)
    
C:\Users\20161111>python practice.py
office_tools
Professional_tools
ProgramTool
SnapGene 3.2.1 Win
system_enhance
windows_iso
谷歌批量翻譯

創(chuàng)建某個目錄

>>> import os
>>> os.mkdir("d:/Software/test")
>>> exit()
C:\Users\20161111>d:
D:\>cd software
D:\software>dir
 Volume in drive D is 新加卷
 Volume Serial Number is C0C6-2E4F

 Directory of D:\software

2018/05/24  09:33    <DIR>          .
2018/05/24  09:33    <DIR>          ..
2018/05/08  13:46    <DIR>          office_tools
2018/05/21  10:30    <DIR>          Professional_tools
2018/05/08  13:46    <DIR>          ProgramTool
2017/11/22  20:21    <DIR>          SnapGene 3.2.1 Win
2018/05/13  21:38    <DIR>          system_enhance
2018/05/24  09:33    <DIR>          test # 剛剛創(chuàng)建的文件夾
2018/05/11  00:48    <DIR>          windows_iso
2017/11/02  10:52    <DIR>          谷歌批量翻譯
               1 File(s)              0 bytes
              10 Dir(s)  49,307,074,560 bytes free

刪除某個文件夾

命令rmdir蕾羊,如下所示:

>>> import os
>>> os.rmdir('d:/Software/test')
>>> exit()

D:\software>dir
 Volume in drive D is 新加卷
 Volume Serial Number is C0C6-2E4F

 Directory of D:\software

2018/05/25  12:40    <DIR>          .
2018/05/25  12:40    <DIR>          ..
2018/05/08  13:46    <DIR>          office_tools
2018/05/21  10:30    <DIR>          Professional_tools
2018/05/08  13:46    <DIR>          ProgramTool
2017/11/22  20:21    <DIR>          SnapGene 3.2.1 Win
2018/05/13  21:38    <DIR>          system_enhance
2018/05/11  00:48    <DIR>          windows_iso
2017/11/02  10:52    <DIR>          谷歌批量翻譯
               1 File(s)              0 bytes
               9 Dir(s)  48,131,309,568 bytes free

D:\Software\test這個文件夾刪除了 喧笔。

對待定文件的操作

如果要對特定類型的文件進行操作時,需要用fnmatch模塊龟再,這個模塊的主要作用是文件名稱的匹配书闸,并且匹配的模式使用的unix shell風(fēng)格。字面意思感覺就是filename match 吸申,以下是顯示.txt文件的內(nèi)容和.exe文件的文件名梗劫,其中*表示任意字符,而?只表示一個字符截碴,如下所示:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梳侨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子日丹,更是在濱河造成了極大的恐慌走哺,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哲虾,死亡現(xiàn)場離奇詭異丙躏,居然都是意外死亡,警方通過查閱死者的電腦和手機束凑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門晒旅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人汪诉,你說我怎么就攤上這事废恋。” “怎么了扒寄?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵鱼鼓,是天一觀的道長。 經(jīng)常有香客問我该编,道長迄本,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任课竣,我火速辦了婚禮嘉赎,結(jié)果婚禮上置媳,老公的妹妹穿的比我還像新娘。我一直安慰自己曹阔,他們只是感情好半开,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著赃份,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奢米。 梳的紋絲不亂的頭發(fā)上抓韩,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音鬓长,去河邊找鬼谒拴。 笑死,一個胖子當(dāng)著我的面吹牛涉波,可吹牛的內(nèi)容都是我干的英上。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼啤覆,長吁一口氣:“原來是場噩夢啊……” “哼苍日!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起窗声,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤相恃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后笨觅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拦耐,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年见剩,在試婚紗的時候發(fā)現(xiàn)自己被綠了杀糯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡苍苞,死狀恐怖固翰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柒啤,我是刑警寧澤倦挂,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站担巩,受9級特大地震影響方援,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涛癌,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一犯戏、第九天 我趴在偏房一處隱蔽的房頂上張望送火。 院中可真熱鬧,春花似錦先匪、人聲如沸种吸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽坚俗。三九已至,卻和暖如春岸裙,著一層夾襖步出監(jiān)牢的瞬間猖败,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工降允, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恩闻,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓剧董,卻偏偏與公主長得像幢尚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子翅楼,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容