簡體   English   中英

用目錄中所有文件中的空格替換換行符-Python

[英]Replace newlines with a space in all files in a directory - Python

我的目錄中大約有4000個txt文件。 我想使用for循環在每個文件中用空格替換換行符。 實際上,該腳本可用於該目的,但是當我保存文件時,它不會被保存,或者會再次用換行符保存。 這是我的劇本;

import glob
path = "path_to_files/*.txt"
for file in glob.glob(path):
    with open(file, "r+") as f:
        data = f.read().replace('\n', ' ')
        f.write(data)

正如我說的那樣,我可以用空格替換換行符,但是最后並沒有保存它。 我也沒有任何錯誤。

為了進一步闡述我的評論(“ 以'r +'模式打開文件幾乎總是一個壞主意(因為當前位置的處理方式)。打開文件進行讀取,讀取數據,替換換行並打開將同一文件寫入文件,寫入數據 “):

for file in glob.glob(path):
    with open(file) as f:
        data = f.read().replace('\n', ' ')
    with open(file, "w") as f:
        f.write(data)

您需要使用seek將文件位置重置為0,然后在完成寫入替換字符串后使用truncate截斷剩余的文件。

import glob
path = "path_to_files/*.txt"
for file in glob.glob(path):
    with open(file, "r+") as f:
        data = f.read().replace('\n', ' ')
        f.seek(0)
        f.write(data)
        f.truncate()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM