我想用python寫一個程序。 我想用新行替換txt文檔中的空格。 我曾嘗試自己寫,但我的輸出文件充滿了怪異的字符。 你能幫忙嗎? :)超級簡單的Python程序 - 用換行符代替空格?
回答
在這裏你去:
lResults = list()
with open("text.txt", 'r') as oFile:
for line in oFile:
sNewLine = line.replace(" ", "\n")
lResults.append(sNewLine)
with open("results.txt", "w") as oFile:
for line in lResults:
oFile.write(line)
在這裏的意見建議後, 「優化」 的版本:
with open("text.txt", 'r') as oFile:
lResults = [line.replace(" ", "\n") for line in oFile]
with open("results.txt", "w") as oFile:
oFile.writelines(lResults)
編輯:迴應評論:
哎塞巴斯蒂安 - 我只是試過你的代碼,它一直給我輸出文件中奇怪的 字符!我做錯了嗎? - Freddy 1分鐘前
你是什麼意思的「怪異」字符?你有一個非ASCII文件嗎? 對不起,但對我來說,它工作得很好,我只是測試它。
試試這個:
import re
s = 'the text to be processed'
re.sub(r'\s+', '\n', s)
=> 'the\ntext\nto\nbe\nprocessed'
現在,「待處理的文本」以上將來自輸入文本文件,您以前在一個字符串讀 - 看到這個answer以瞭解如何去做這個。
(如果你想*每個*空格字符換成'\ n',請去除'+'(@ Oscar的解決方案將一行中的多個空格轉換爲只有一個'\ n')) – cwallenpoole
謝謝!這將工作在600+句子的文件? – Freddy
是的。這應該。 –
您可以使用正則表達式實現這一點:
import re
with open('thefile.txt') as f, open('out.txt', 'w') as out:
for line in f:
new_line = re.sub('\s', '\n', line)
# print new_line
out.write(new_line)
你可能需要寫回new_line
到一個文件,而不是打印出來的:)(==>片斷編輯)。
參見蟒regex
文檔:
sub(pattern, repl, string, count=0, flags=0)
pattern
:搜索模式repl
:替換圖案string
:要處理的字符串,在這種情況下,line
注意:如果你只是想替換髮生在該行的末尾空格,使用\s$
搜索模式,其中$
代表字符串(的末尾,以便在年底寫着「一個空間字符串「)。如果您確實需要更換每個空間,那麼str
的replace
方法可能就足夠了。
def (in_file, out_file):
with open(in_file, 'r') as i, open(out_file, 'w') as o:
w.write(i.read().replace(' ', os.linesep))
注意,這既不循環也寫道'\n'
而是os.linesep
這將是\n
的Linux版本和\r\n
在Windows等等。
另請注意,答案的最大部分來自alwaysprep,如果他將循環從他的解決方案中解脫出來,他應該得到好評。 (他是否真的刪除了他的答案?找不到它了。)
我不認爲使用循環有任何問題,使用'file.read()'把整個文件內容放入內存,這是不是有效的在所有。 –
你很少會用文本文件來限制內存限制。沒有循環,你可以更快地迭代(在底層解釋器中,而不是在你的代碼中)並且由於代碼少而獲得更好的維護。 「簡單比複雜更好。」 – erikbwork
- 1. Python - 如何用特定字符替換簡單文本行中的空格
- 2. 用單個空格替換字符串中的多空格 - Python
- 3. 剃刀引擎用空格替換代碼中的換行符?
- 4. Bash:Printf用換行符替換空格
- 5. Python的超級方法調用替代
- 6. 用特殊字符和空格替換js代碼行
- 7. 如何用新換行代替空格
- 8. 如何用換行符替換空格只在換行符上?
- 9. 用換行符替換多個空格,但留下單個空格
- 10. 替換python中的空格+
- 11. 程序錯誤:用「%20」代替空格
- 12. 不能用字符串替換單個空格。替換()
- 13. 如何用emacs中的換行符(LF)替換空格字符?
- 14. 用空格替換製表符的Perl程序
- 15. 替換「空格的字符
- 16. Python:將空格替換爲「 - 」
- 17. 用於Javascript的Python替代字符串格式化程序
- 18. python用字符串之間的特殊字符替換空格
- 19. easypng替代/超級簡單數據可視化庫(C++)
- 20. Perl的替代品,在換行空格替代品也
- 21. XSLT用空格替換非ASCII字符
- 22. 用數組替換0的空格(Python)
- 23. 用python中的字母替換空格
- 24. 用單個空格替換空白
- 25. 用一個空格替換所有多空格字符除了換行符
- 26. 字符串簡單替換
- 27. 帶空格/製表符/換行符 - python
- 28. 替換連續的空格,製表符,換行符字符
- 29. 用空格替換子字符串,然後用Python中的逗號替換
- 30. 用單個空格替換字符串中的多個字符
你應該在windows上發佈你試過的 – Stephan
嗎? – eri
是的,我在窗戶上! – Freddy