2013-07-26 65 views

回答

3

在這裏你去:

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文件嗎? 對不起,但對我來說,它工作得很好,我只是測試它。

enter image description here enter image description here

+0

嘿塞巴斯蒂安 - 我只是試過你的代碼,它不斷給我輸出文件中的怪異字符!我做錯了嗎? – Freddy

+0

嘿,我回答了上面的答案 – Sebastian

+0

如果你在* nix系統上(或者在Windows上使用cygwin),我會寫入stdout而不是新文件。這使您可以將它打印出來,將它重定向到您選擇的文件,或者將它「管理」到另一個程序。 – mk12

1

試試這個:

import re 
s = 'the text to be processed' 
re.sub(r'\s+', '\n', s) 
=> 'the\ntext\nto\nbe\nprocessed' 

現在,「待處理的文本」以上將來自輸入文本文件,您以前在一個字符串讀 - 看到這個answer以瞭解如何去做這個。

+0

(如果你想*每個*空格字符換成'\ n',請去除'+'(@ Oscar的解決方案將一行中的多個空格轉換爲只有一個'\ n')) – cwallenpoole

+0

謝謝!這將工作在600+句子的文件? – Freddy

+1

是的。這應該。 –

0

您可以使用正則表達式實現這一點:

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$搜索模式,其中$代表字符串(的末尾,以便在年底寫着「一個空間字符串「)。如果您確實需要更換每個空間,那麼strreplace方法可能就足夠了。

0
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,如果他將循環從他的解決方案中解脫出來,他應該得到好評。 (他是否真的刪除了他的答案?找不到它了。)

+0

我不認爲使用循環有任何問題,使用'file.read()'把整個文件內容放入內存,這是不是有效的在所有。 –

+0

你很少會用文本文件來限制內存限制。沒有循環,你可以更快地迭代(在底層解釋器中,而不是在你的代碼中)並且由於代碼少而獲得更好的維護。 「簡單比複雜更好。」 – erikbwork

相關問題