pythonopenwrite
⑴ python 中寫文件write和write()的區別是啥
1、不帶括弧時,調用的是這個函數本身
2、帶括弧(此時必須傳入需要的參數),調用的是函數的return結果
例如:
defa(x):
returnx
print(a)#不帶括弧調用的結果:<functionaat0x1091766a8>
print(a(3))#帶括弧調用的結果:3
⑵ 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 open函數中,write方法寫入字元串為什麼要3個單引號
3個引號里,書寫文本可以自由換行,不需要自己拼接字元串。
⑷ 為什麼XP系統Python3.4.4版本open()、write()無法打開文件讀寫
如果不用全路徑則是相對路徑,相對的是當前路徑,當前路徑是最開始啟動進程的路徑,比如說你的cmd默認路徑是system32下面(待確認),在cmd里輸入python xxx.py,當前路徑是cmd的路徑,並不是py的路徑。如果你直接雙擊py文件運行,當前路徑有有可能是py的路徑了,但也說不定。
⑸ python makefile與open的區別
這段文字的意思是說python的socket模塊中提供了makefile()方法,生成一個文件與socket對象關聯,然後就跟讀普通文件一樣使用socket。(對普通文件有open,write等方法)
如下面這段示例代碼:
importsocket,sys
port=70
host=sys.argv[1]
filename=sys.argv[2]
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))
fd=s.makefile('rw',0)
fd.write(filename+" ")
forlineinfd.readlines():
sys.stdout.write(line)
⑹ python用open打開文件讀寫,「w」會替換,「a」多次調用函數會重復
print語句print [expression ("," expression)* [","]]print >> expression [("," expression)+ [","]][]表示可選項,*表示零次或多次重復,+表示至少一次重復。print是一種特殊的語句,它用於在stdout輸出字元串。print有多種使用形式:print xprint x,yprint x,y,print >> object, x, y第1行是print的最普通的形式。第2行用print一次輸出多個變數值,print會在變數之間自動加上一個"空格"。第3行與第2行的不同是在y的後面多了一個",",這個逗號用來阻止print在列印出x和y的值後,自動附加上一個「\n」字元。第4行,是一種輸出重定向的形式,也就是說把x和y的值輸出到object的write方法中,這同時也表明object必須有一個write方法。在python中,print語句其實只是一種簡寫形式,是下面這段程序的簡寫:import syssys.stdout.write(str(x) + '\n')上面這兩行合起來就是「print x」這一句。可以看出,print是調用str()函數來產生字元串的,並且會在輸出的字元串後加上一個'\n'字元。由於print實際是上調用了stdout的write方法。程序員也可以把stdout賦為別的值,從面實現print的輸出重定向的功能。比如:import sysx="I'm here!"fp=file('log.txt','a')sys.stdout=fpprint x第4行改變了stdou的值,而且fp也是一個文件對象,有一個write方法。這一小段代碼的功能是把print的輸出全部以appand的模式寫到了文件log.txt中。在第4行之後的print語句,都是這種功能。現在假設要恢復print輸出到標准輸出的功能,那麼就需要讓stdout重新指向標准輸出,可以使用如下的方式:sys.stdout=sys.__stdout__在sys.__stdout__中保存有指向標准輸出的信息,通過這行代碼,print可以恢復為原來的功能。有時候要在這兩種模式之間換來換去,一會要輸出到文件中,一會要輸出到標准輸出中,通過改變sys.stdout的值可以實現,不過太麻煩,python提供了另外一種簡便的print語句形式,來解決這種需求:print >> object,x,y能過>>這個符號,可以實現輸出重定向到object,當然object必須有一個write方法。否則會出現AttributeError。注意,在這種print形式中,sys.stdout並沒有改變,也就是說在這之後的print語句,具有的還是標准功能。雖然print語句實際上sys.stdou.write(),但sys模塊的import工作並不需要程序員操心,python會自動處理。類似於print的輸出,當用內置函數raw_input([prompt])進行讀取操作時,實際上用的是sys.stdin.read()方法。也可以通過改變stdin的值來控制入操作。相應的也有一個sys.__stdin__用來保存標准輸入的信息。
⑺ python write和writelines的區別
python write和writelines的區別:
1、file.write(str)的參數是一個字元串,就是你要寫入文件的內容.
2、file.writelines(sequence)的參數是序列,比如列表,它會迭代幫你寫入文件。
⑻ Python編程open函數追加寫入模式許可權被拒
文件沒有寫入許可權,可以使用 chmod o+w ./result/_results.txt 來更改文件許可權
⑼ python以'r+'模式open打開一個文件,然後.read該文件,再.write,為什麼出現ioer
文件中的內容定位f.read()讀取之後,文件指針到達文件的末尾,如果再來一次f.read()將會發現讀取的是空內容,如果想再次讀取全部內容,必須將定位指針移動到文件開始:
f.seek(0)這個函數的格式如下(單位是bytes):
f.seek(offset, from_what) from_what表示開始讀取的位置,offset表示從from_what再移動一定量的距離。比如f.seek(10, 3)表示定位到第三個字元並再後移10個字元。from_what值為0時表示文件的開始,它也可以省略,預設是0即文件開頭。