writePython
① python write和writelines的區別
1、參數
file.write(str)的參數時一個字元串,就是你要寫入文件的內容。
file.writelines(sequence)的參數可以是一個字元串,也可以是一個字元串序列,比如一個列表,它會迭代幫助你寫入文件。
2、格式
文件.write(str)。
文件.writelines(str)。
3、用法
write(str):把字元串寫入文件,單行寫入。
writelines(str):把字元串按行寫入文件,多行寫入。
4、具體用法
write函數
f = open("C:/.../示例.txt", 'w',encoding = 'utf-8')
#通過絕對路徑打開文件,如果不存在會重新創建一個文件;如果存在會覆蓋原文件,encoding表示編碼結構。
a = 'Life is short!'
f.write(a)
f.close()
#需要注意的是,write中的參數一定要是str類型的
writelines函數
f = open("C:\...\a.txt", 'w',encoding = 'utf-8')
text = ['Life is short\n','I choose python\n','With great power, comes great responsibility']
f.writelines(text)
f.close()
② python write 寫入為什麼會報這個錯'gbk'codec can't encode character \xbb'i
使用Python寫文件的時候,或者將網路數據流寫入到本地文件的時候,大部分情況下會遇到:UnicodeEncodeError:
'gbk'
codec
can't
encode
character
'\xa0'
in
position
...
這個問題。
網路上有很多類似的文件講述如何解決這個問題,但是無非就是encode,decode相關的,這是導致該問題出現的真正原因嗎?不是的。
很多時候,我們使用了decode和encode,試遍了各種編碼,utf8,utf-8,gbk,gb2312等等,該有的編碼都試遍了,可是編譯的時候仍然出現:
UnicodeEncodeError:
'gbk'
codec
can't
encode
character
'\xa0'
in
position
XXX。
崩潰了。
在windows下面編寫python腳本,編碼問題很嚴重。
將網路數據流寫入文件時時,我們會遇到幾個編碼:
1:
#encoding='XXX'
這里(也就是python文件第一行的內容)的編碼是指該python腳本文件本身的編碼,無關緊要。只要XXX和文件本身的編碼相同就行了。
比如notepad++
"格式"菜單裡面里可以設置各種編碼,這時需要保證該菜單里設置的編碼和encoding
XXX相同就行了,不同的話會報錯
2:網路數據流的編碼
比如獲取網頁,那麼網路數據流的編碼就是網頁的編碼。需要使用decode解碼成unicode編碼。
3:目標文件的編碼
要將網路數據流的編碼寫入到新文件,那麼我么需要指定新文件的編碼。寫文件代碼如:
復制代碼代碼如下:
f.write(txt)
,那麼txt是一個字元串,它是通過decode解碼過的字元串。關鍵點就要來了:目標文件的編碼是導致標題所指問題的罪魁禍首。如果我們打開一個文件:
復制代碼代碼如下:
f
=
open("out.html","w")
,在windows下面,新文件的默認編碼是gbk,這樣的話,python解釋器會用gbk編碼去解析我們的網路數據流txt,然而txt此時已經是decode過的unicode編碼,這樣的話就會導致解析不了,出現上述問題。
解決的辦法就是,改變目標文件的編碼:
復制代碼代碼如下:
f
=
open("out.html","w",encoding='utf-8')
③ python的write和writelines有什麼區別
python的write和writelines有兩點區別:
1、write需要傳入一個字元串做為參數,否則會報錯。
2、writelines既可以傳入字元串又可以傳入一個字元序列,並將該字元序列寫入文件。
④ python .write用不了
授人以魚不如授人以漁,請更加註重我給你講的分析問題的思路。
首先,你要想想問題可能出在哪,
file.write(txt),最多三個地方有問題:
第一種情況:file有問題:這種情況可能是你的file打開時,不是用的可寫模式,
一般打開文件時有幾種模式:
file=open('your_file_name.txt','r')--->可讀模式
file=open('your_file_name.txt','w')--->可寫模式
file=open('your_file_name.txt','w+')--->追加模式
...其他模式,自行網路一下
此時,你只需要改下你打開文件的模式就好,寫文件用第二種
第二種情況:write的問題,因為它是一個內置的函數,所以,基本不會有問題
第三種情況:txt的問題
你的txt格式是否不是字元串,write貌似只能寫出字元串,int這些都是無法寫出,
例如:如果你要寫出『apple』,應該是file.write('apple'),注意引號
如果你前面有個txt=『ABCDEFG』,應該是file.write(txt),此時沒有引號,因為txt已經是字元串了
希望對你有用
⑤ python用write無法對.cfg寫入文件
這不是錯誤,只是IO流提示符。open('haproxy1.cfg', 'a+'), 以下為各模式的詳細說明:
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb 以二進制格式打開一個文件用於只讀。文件指針將會放在文件的開頭。這是默認模式。
r+ 打開一個文件用於讀寫。文件指針將會放在文件的開頭。
rb+ 以二進制格式打開一個文件用於讀寫。文件指針將會放在文件的開頭。
w 打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb 以二進制格式打開一個文件只用於寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
w+ 打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
wb+ 以二進制格式打開一個文件用於讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創建新文件。
a 打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
ab 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。
a+ 打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。
ab+ 以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。
⑥ python 中寫文件write和write()的區別是啥
1、不帶括弧時,調用的是這個函數本身
2、帶括弧(此時必須傳入需要的參數),調用的是函數的return結果
例如:
defa(x):
returnx
print(a)#不帶括弧調用的結果:<functionaat0x1091766a8>
print(a(3))#帶括弧調用的結果:3
⑦ Python write()寫不進去
我用的2.7 是可以寫入的,樓主把異常列印出來看看具體是什麼異常
⑧ python write()我有條結果卻只寫入一條
q.write(each)和前面一行PRINT縮進對齊
⑨ python寫入文件write中的冒號是中文冒號嗎
python寫入文件write中的冒號不是中文冒號。根據查詢相關信息得知,python寫入文件write中冒因為使用變數不需要切換中英文輸入法,因此都使用的是英文鍵盤的冒號。
⑩ python write和writelines的區別
python write和writelines的區別:
1、file.write(str)的參數是一個字元串,就是你要寫入文件的內容.
2、file.writelines(sequence)的參數是序列,比如列表,它會迭代幫你寫入文件。