在文本文件中找到一个点并在Python中为该文件添加换行符?
我从文件“rawCorpus.txt”中读取,文本应该被拆分。如果在阅读过程中发现一个“。”,它应该在文本中添加一个换行符并将其写回文件。我试过这个代码,但仍然有问题。在文本文件中找到一个点并在Python中为该文件添加换行符?
inp = open('rawCorpus.txt', 'r')
out = open("testFile.text", "w")
for line in iter(inp):
l = line.split()
if l.endswith(".")
out.write("\n")
s = '\n'.join(l)
print(s)
out.write(str(s))
inp.close()
out.close()
这是我自己的解决方案,但我仍然后多了一个换行符希望“”,这种解决方案不这样做 read_lines = [line.rstrip(‘\ n’)在开线('rawCorpus .txt')] words = []
my_save_data = open("my_saved_data.txt", "w")
for lines in read_lines:
words.append(lines)
for word in words:
w = word.rstrip().replace('.', '\n.')
w = w.split()
my_save_data.write(str("\n".join(w)))
print("\n".join(w))
my_save_data.close()
“但是我仍然需要在”。“之后多加一个换行符。”“...所以...您可以使用两个”\ n“字符...比如”\ n \ n“您尝试过吗? – DRPK
您与s = '\n'.join(l)
覆盖串s
在每一个循环。
将s = ''
分配为for循环前的空字符串,并在每个循环中添加新行,例如,与s += '\n'.join(l)
(的s = s + '\n'.join(l)
短版这应该工作:
inp = open('rawCorpus.txt', 'r')
out = open('testFile.text', 'w')
s = '' # empty string
for line in iter(inp):
l = line.split('.')
s += '\n'.join(l) # add new lines to s
print(s)
out.write(str(s))
inp.close()
out.close()
谢谢,我不知道这一点,但我的问题是如果在阅读过程中罚款“。”,它应该添加一个换行符。 –
用'\ n'代替'.',因为这条线在'.'处被分开,并且这些部分再次与'\ n'连接。 – bastelflp
对不起,您的解决方案是覆盖文件。我测试过 –
试试这个(正常方式):
with open("rawCorpus.txt", 'r') as read_file:
raw_data = read_file.readlines()
my_save_data = open("testFile.text", "a")
for lines in raw_data:
if "." in lines:
re_lines = lines.replace(".", ".\r\n")
my_save_data.write(re_lines)
else:
my_save_data.write(lines + "\n")
my_save_data.close()
如果你的文本文件不是很大,你可以试试这个太:
with open("rawCorpus.txt", 'r') as read_file:
raw_data = read_file.read()
re_data = raw_data.replace(".", ".\n")
with open("testFile.text", "w") as save_data:
save_data.write(re_data)
UPDATE(输出新行也取决于您的文本查看器!因为在某些文本编辑器中,“\ n”是一个新行,但在其他一些文件中,“\ r \ n”是一个新行。 ):
输入样本:
这是一本书。我喜欢它。
这是一个苹果。我喜欢它。
这是一台笔记本电脑。我喜欢它。
这是一支笔。我喜欢它。
这是一个手机。我喜欢它。
代码:
last_buffer = []
read_lines = [line.rstrip('\n') for line in open('input.txt')]
my_save_data = open("output.txt", "a")
for lines in read_lines:
re_make_lines = lines.split(".")
for items in re_make_lines:
if items.replace(" ", "") == "":
pass
else:
result = items.strip() + ".\r\n"
my_save_data.write(result)
my_save_data.close()
输出继电器将是:
这是一本书。
我喜欢它。
这是一个苹果。
我喜欢它。
这是一台笔记本电脑。
我喜欢它。
这是一支笔。
我喜欢它。
这是一个手机。
我喜欢它。
什么问题? –
如果发现“。”,我正在阅读文件。或句子结尾时,应该添加一个换行符,然后继续拆分。 –
你的文本文件很大?或不? – DRPK