是否可以寫入不帶引號和空格的文件字符串(列表中任何類型的空格)?Python - 如何寫入字符串文件不帶引號和空格?
例如,我有這樣的名單:
['blabla', 10, 'something']
我怎麼能寫入文件,所以在文件中的行會變成這樣:
blabla,10,something
現在每次我把它寫到文件我得到這個:
'blabla', 10, 'something'
那麼我需要用空符號替換'
和' '
。也許有一些竅門,所以我不應該一直需要更換它?
是否可以寫入不帶引號和空格的文件字符串(列表中任何類型的空格)?Python - 如何寫入字符串文件不帶引號和空格?
例如,我有這樣的名單:
['blabla', 10, 'something']
我怎麼能寫入文件,所以在文件中的行會變成這樣:
blabla,10,something
現在每次我把它寫到文件我得到這個:
'blabla', 10, 'something'
那麼我需要用空符號替換'
和' '
。也許有一些竅門,所以我不應該一直需要更換它?
這將工作:
lst = ['blabla', 10, 'something']
# Open the file with a context manager
with open("/path/to/file", "a+") as myfile:
# Convert all of the items in lst to strings (for str.join)
lst = map(str, lst)
# Join the items together with commas
line = ",".join(lst)
# Write to the file
myfile.write(line)
輸出文件:
blabla,10,something
不過請注意,上面的代碼可以簡化爲:
lst = ['blabla', 10, 'something']
with open("/path/to/file", "a+") as myfile:
myfile.write(",".join(map(str, lst)))
此外,你可能想換行增加的結束您寫入文件的行:
myfile.write(",".join(map(str, lst))+"\n")
這會導致對文件的每個後續寫入都放在自己的行上。
謝謝。有用。 – Andrius
你試過類似的東西嗎?
yourlist = ['blabla', 10, 'something']
open('yourfile', 'a+').write(', '.join([str(i) for i in yourlist]) + '\n')
凡
', '.join(...)
採取字符串列表,並用繩子把它粘(', '
)
和
[str(i) for i in yourList]
列表轉換成字符串列表(以處理號碼)
打開文件後你應該關閉文件...我認爲打開(文件)作爲f:etc .etc會更好。 –
由於'open'只是在行尾(沒有變量來存儲文件對象),所以它的析構函數應該自動調用'close()'函數。至少我認爲它應該以這種方式工作......但你可能是對的,畢竟它取決於python的垃圾回收器 – Cyrille
mmm我試過了,但它不起作用(在你的列表中有一個錯誤,而不是你的列表),而.txt用空格分隔 –
初始化所有項目列表中的一個空字符串Ĵ
,串聯到j這在for循環創建沒有空間,
印刷STR(J)將刪除該行情
j=''
for item in list:
j = j + str(item)
print str(j)
雖然這個答案可能是正確的,但請添加一些解釋。賦予基礎邏輯比賦予代碼更重要,因爲它可以幫助OP和其他讀者自己解決這個問題和類似的問題。 – CodeMouse92
你怎麼寫歸檔?這應該只會發生,如果你使用一些自動轉義的東西像csvwriter。 – kalhartt