我有一个文本文件,其中包含以下段落:
上面的with语句将在嵌套的代码块后自动关闭文件。上面的with语句将在嵌套的代码块之后自动关闭文件。上面的with语句将在嵌套的代码块之后自动关闭文件 上面的with语句将在没有。
的嵌套代码块之后自动关闭文件现在,我想通过分隔段落的各行来修改文件,并将其保存在与以下相同的文本文件中:
上面的with语句将在嵌套的代码块之后自动关闭文件 上面的with语句将在嵌套的代码块之后自动关闭文件 上面的with语句将在嵌套的代码块之后自动关闭文件 上面的with语句将在没有。
的嵌套代码块之后自动关闭文件我能够做到,但有点复杂。我的代码如下:
尝试-1
file = open("file_path")
content = file.read()
file.close()
file = open("file_path", 'w')
a = content.replace('. ', '.\n')
file.write(a)
file.close()
尝试-2
file = open("file_path")
contents = file.readlines()
file.close()
b = []
for line in contents:
if not line.strip():
continue
else:
b.append(line)
b = "".join(b)
file = open("file_path", 'w')
file.write(b)
file.close()
我打开文件两次读取和两次写入,是否有更好的方法将段落与文本文件分开,并将其写入同一文本文件?
答案 0 :(得分:3)
你可以这样做:
with open('filepath', 'r') as contents, open('filepath', 'w') as file:
contents = contents.read()
lines = contents.split('. ')
for index, line in enumerate(lines):
if index != len(lines) - 1:
file.write(line + '.\n')
else:
file.write(line + '.')
答案 1 :(得分:1)
您可以使用seek文件方法跳转到当前文件:
f.seek(offset, from_what)
如果你想使用文件进行写入和读取,请使用选项r +:
file = open("file_path", 'r+')
您也可以使用readlines跳过步骤并使用文件迭代。代码应该是:
file = open("file_path", "r+")
content = file.read()
a = content.replace('. ', '.\n')
file.seek(0)
file.write(a)
file.seek(0)
b = []
for line in file:
if not line.strip():
continue
else:
b.append(line)
b = "".join(b)
file.seek(0)
file.write(b)
file.close()