1.open函數(shù)窝撵,可以打開一個已經存在的文件,或者創(chuàng)建一個新文件
open(文件名襟铭,訪問模式)碌奉,注意默認encoding是gbk,如果文件編碼是utf8寒砖,
open(文件名赐劣,訪問模式,encoding='utf8')
訪問模式:
r:以只讀的方式打開文件哩都,文件的指針放在文件的開頭
w:打開一個文件只用于寫入魁兼。如果該文件已存在則將其覆蓋。如果該文件不存在漠嵌,創(chuàng)建新文件咐汞。
a:以追加的方式打開文件并寫入內容,也就是說文件指針將會放在文件的結尾儒鹿,如果該文件不存在化撕,創(chuàng)建新文件進行寫入。
rb:以二進制格式打開一個文件用于只讀约炎。wb植阴,ab同理。
r+:給r模式增加了寫入的功能
w+:給w模式增加了讀出的功能
a+:給a模式增加了讀出的功能
2.寫數(shù)據(jù)
使用write()可以完成向文件寫入數(shù)據(jù)圾浅。
f = open("test.txt",'w')
f.write("lalalla"+'\n'+"hahahaha")
f.close()
3.讀數(shù)據(jù)
read函數(shù)掠手,read(num),num狸捕,從文件中讀取的數(shù)據(jù)的長度(單位是字節(jié))惨撇,后面讀取的數(shù)據(jù)是從上次讀完后的位置開始的,如果不傳入府寒,就默認讀出全部數(shù)據(jù)。
f1 = open("test.txt",'r')
f1.read(2)
'la'
f1.read(9)
'lalla\nhah'
readlines函數(shù)报腔,可以按照行的方式把整個文件中的內容進行一次性讀取株搔,并且返回的是一個列表,其中每一行的數(shù)據(jù)為一個元素
readline函數(shù):讀取文件中一行的數(shù)據(jù)纯蛾,后面讀取的數(shù)據(jù)是從上次讀完后的位置開始的纤房。
4.close函數(shù),關閉文件
5.獲取在當前文件中指針讀寫的位置
tell函數(shù)翻诉,在close函數(shù)之前炮姨。
f = open("test.txt", "r")
? ? str = f.read(3)
? ? print("讀取的數(shù)據(jù)是 : ", str)
? ? # 查找當前位置
? ? position = f.tell()
? ? print("當前文件位置 : ", position)
? ? str = f.read(3)
? ? print("讀取的數(shù)據(jù)是 : ", str)
? ? # 查找當前位置
? ? position = f.tell()
? ? print("當前文件位置 : ", position)
? ? f.close()
讀取的數(shù)據(jù)是 :? lal
當前文件位置 :? 3
讀取的數(shù)據(jù)是 :? all
當前文件位置 :? 6
6.定位到某個位置
seek(offset, from)有2個參數(shù)
offset:偏移量
from:方向
0:表示文件開頭
1:表示當前位置
2:表示文件末尾?
f = open("test.txt", "r")
print(f.tell())
print(f.seek(5,0))
print(f.tell())
0
5
5
7.os.rename("老文件名","新文件名") 重命名文件名
8.os.remove("刪除文件名")? 刪除文件
os.removedirs('dirname1')若目錄為空捌刮,則刪除,并遞歸到上一級目錄舒岸,如若也為空绅作,則刪除,依此類推
9. os.mkdir("張三") 創(chuàng)建文件夾
10. os.getcwd() 獲取當前目錄
11. os.chdir("test") 蛾派,目錄切換
12.os.listdir()俄认,獲取當前文件列表,包括文件夾,文件名洪乍。
13.os.rmdir("待刪除文件夾")? 刪除文件夾眯杏,目錄非空不能使用?
import shutil
shutil.rmtree("待刪除文件夾"),刪除非空目錄
14.os.walk(top, topdown=True, onerror=None, followlinks=False)用來遍歷一個目錄內各個子目錄和子文件。
top 是你所要便利的目錄的地址
topdown 為真壳澳,則優(yōu)先遍歷top目錄岂贩,否則優(yōu)先遍歷top的子目錄(默認為開啟)
onerror 需要一個 callable 對象,當walk需要異常時巷波,會調用
followlinks 如果為真萎津,則會遍歷目錄下的快捷方式(linux 下是 symbolic link)實際所指的目錄(默認關閉)
os.walk 的返回值是一個生成器(generator),也就是說我們需要不斷的遍歷它,來獲得所有的內容褥紫。
得到一個三元tupple(dirpath,?dirnames,?filenames)
第一個為起始路徑姜性,第二個為起始路徑下的文件夾列表,第三個是起始路徑下的文件列表髓考。
for root,dirs,files in os.walk("test"):
? ? print(root)?
? ? print(dirs)?
? ? print(files)
test
['t']
['t.txt']
test\t
[]
['t1.txt']
15.os.sep? 主要用于系統(tǒng)路徑中的分隔符.windows下是'\\'部念,linux是'/'
os.sep
'\\'
16.os.chmod 更改文件或目錄的權限。
os.chmod(path, mode),
17.Os.path.abspath(path) 返回文件絕對路徑(有文件名)
18.os.path.dirname(path),返回文件路徑
os.path.dirname("test/t.txt")
'test'
19.os.path.join(path1[,path2[,……]])氨菇, 將多個路徑組合后返回
os.path.join(os.getcwd(),"ppp.txt")
'C:\\test\\ppp.txt'
20.os.path.split(path)?
將path分割成目錄和文件名二元組返回儡炼。?
os.path.split("test/t.txt")
('test', 't.txt')
21.os.path.basename(),返回文件名
os.path.basename("test/t.txt")
't.txt'
22.os.path.exists(path)?
如果path存在,返回True查蓉;如果path不存在乌询,返回False。
os.path.exists("ttttt")
False
23.os.path.isabs/isdir/isfile(path)
如果path是一個存在的絕對路徑/文件夾/文件豌研,返回True妹田。否則返回False。
24.os.path.getsize(path)?返回path的文件的大芯楣病(字節(jié))
os.path.getsize("test/t.txt")
72