文件的讀取:read(),readline(),readlines()
文件的寫入:write(),writelines()
其他函數:tell()返回一個整數,是當前文件指針的位置。seek(偏移量,[起始位置])
文件的打開方式可以用:with open("xx.txt","r") as file:
文件read.txt中的內容:
1.時難年荒世業空,弟兄羈旅各西東。
2.田園寥落干戈後,骨肉流離道路中。
3.弔影分爲千里雁,辭根散作九秋蓬。
4.共看明月應垂淚,一夜鄉心五處同。
1. read()
>>> file=open("read.txt")
>>> a=file.read() #讀取文件內容的全部,文件過大時,會佔用內存過大
>>> a
>>> file.close()
'1.時難年荒世業空,弟兄羈旅各西東。\n2.田園寥落干戈後,骨肉流離道路中。\n3.弔影分爲千里雁,辭根散作九秋蓬。\n4.共看明月應垂淚,一夜鄉心五處同。'
>>> file=open("read.txt")
>>> a=file.read(3) #按字節讀取
>>> a
'1.時'
>>> file.close()
2. readline()
>>> file=open("read.txt")
>>> a=file.readline() #讀取一行
>>> a
'1.時難年荒世業空,弟兄羈旅各西東。\n'
>>> file.close()
3. readlines()
>>> file=open("read.txt")
>>> a=file.readlines() #讀取文件全部內容,按行讀取,返回列表
>>> a
['1.時難年荒世業空,弟兄羈旅各西東。\n', '2.田園寥落干戈後,骨肉流離道路中。\n', '3.弔影分爲千里雁,辭根散作九秋蓬。\n', '4.共看明月應垂淚,一夜鄉心五處同。']
>>> file.close()
4. 使用for循環遍歷文件對象
>>> file=open("read.txt")
>>> for each in file:
print(each)
1.時難年荒世業空,弟兄羈旅各西東。
2.田園寥落干戈後,骨肉流離道路中。
3.弔影分爲千里雁,辭根散作九秋蓬。
4.共看明月應垂淚,一夜鄉心五處同。
>>> file.close()
5. write() 參數只能是string,只是單純的加入內容,不會在內容後加其他東西
>>> file=open("write.txt","w") #打開方式爲“w”,會覆蓋原文件的內容
>>> L="HELLO,PYTHON"
>>> file.write(L)
12
>>> file.close()
此時文件的內容是:
HELLO,PYTHON
>>> file=open("write.txt","w")
>>> L="HELLO,PYTHON,\nI LOVE YOU"
>>> file.write(L)
24
>>> file.close()
此時文件的內容:
HELLO,PYTHON,
I LOVE YOU
參數是非字符串,報錯
>>> file.close()
>>> file=open("write.txt","w")
>>> L=123
>>> file.write(L)
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
file.write(L)
TypeError: write() argument must be str, not int
writelines(): 參數必須是list/string/dict/tuple 等可迭代序列對象,且裏面內容須是字符。它會自動迭代裏面的內容並寫入文件,只是單純的按順序把內容寫入,不會在每個被迭代元素後面加任何東西。
>>> file=open("write.txt","w")
>>> L=["HELLO","PYTHON","I","LOVE","YOU"]
>>> file.writelines(L) #參數是列表
>>> file.close()
此時文件內容是:
HELLOPYTHONILOVEYOU
>>> file=open("write.txt","w")
>>> L={"name":"wang hailu","age":34,"score":598}
>>> file.writelines(L)
>>> file.close()
此時文件的內容:
nameagescore