【发布时间】:2017-05-19 16:43:56
【问题描述】:
我正在尝试从包含字符“|”的文件中读取将数据复制到新文件时需要删除。例如,我的数据看起来像这样,一行的内容转移到另一行:
| bob | Timestamp: 1493651705861 | sally |
我想要“|”删除后,每次出现后,下一组文本将移至下一行,因此之后会如下所示:
bob
Timestamp: 1493651705861
sally
我构造了以下代码,逐行读取旧文件,然后逐字符读取,然后检查字符是否为“|”如果是不写的话。但是,当我这样做时,我的打印语句不会打印任何内容,并且新文件是空的。这是我正在使用的代码:
with open('example-file','r') as f, open('example-file-New','w') as fnew:
line = f.readline()
for line in f:
for ch in line:
print("character is: ")
print(ch)
if ch =="|":
print("Not printing character")
fnew.write('\n')
else:
fnew.write(ch)
print('end of program')
fnew.close()
任何帮助将不胜感激,因为我仍在努力适应 Python。
【问题讨论】:
-
您的代码对我有用。你的代码还有什么作用?您的输入文件中有多少行?在 Python 中仅供参考,字符串有一个
replace方法,您可以使用该方法将一个字符替换为另一个字符。例如line.replace('|', '\n'). -
基本上 也适用于我,因为新文件最终不会为空。顺便说一句,当您使用
with语句打开文件时,您不需要显式关闭文件。您是否有意跳过文件的第一行?你真的希望每个字符都像这样打印在单独的行上吗?你真的想要“|”之间的所有空格吗字符复制到输出?复制空格意味着输出文件中的文本将在原始行中的每个项目的前后都有它们。