从Python文件中删除不需要的字符
我正在读取一个文本文件,提取两列按空格分隔的内容,并将它们写入另一个文本文件。有些行中有“-”字符。我想删除它们并写入。下面的代码有什么问题?我也使用了line.replace(),但它不起作用从Python文件中删除不需要的字符,python,regex,split,Python,Regex,Split,我正在读取一个文本文件,提取两列按空格分隔的内容,并将它们写入另一个文本文件。有些行中有“-”字符。我想删除它们并写入。下面的代码有什么问题?我也使用了line.replace(),但它不起作用 fo = open('referrer.txt','rw') try: for line in open('c1'): if line.startswith('#'): continue else: resource = line.
fo = open('referrer.txt','rw')
try:
for line in open('c1'):
if line.startswith('#'):
continue
else:
resource = line.split(' ')[5]
fo.write(re.sub('-',' ',line.split(' ')[11]) +' '+resource + '\n')
except:
pass
fo.close()
更多信息:c1在每行中都有大量信息,每行之间用空格隔开。我在读,每行提取第5和第11个字符串。然后这个referer.txt行有一些类似“abssfdf cfgd abc”的内容。我想在写入referer.txt之前删除每行中的“-”字符?写入时,它会向前移动文件指针并覆盖原始内容。下面的阅读从你写作的终点开始
您最好写入一个新文件。如果您使用的是linux,请使用Sed命令
import commands
commands.getstatusoutput('sed -i 's/\-/ /g' /youfile.txt')
要忽略以“#”开头的行,请使用:
grep-v“#”file.txt>other_filer.txt。
我曾经使用OS命令来处理文件 您应该尝试一些打印调试语句您没有提供足够的信息让我们帮助您。。。你有什么错误?您为代码提供了什么样的输入?我能告诉你的是,你的潜艇很好,我相信替换者也会很好。我认为您的问题可能在于如何处理行拆分。这取决于文件的大小:
new\u file.write(old\u file.read().replace('-','')
可能work@zmoc1在每一行中都有大量的信息,每一行之间用空格隔开。我在读,每行提取第5和第11个字符串。然后这个referer.txt行有一些类似“abssfdf cfgd abc”的内容。我想删除每行中的“-”字符?您可能不想使用捕获所有异常,除非。这将隐藏代码中的其他问题。确定哪些异常可能发生,并捕获这些异常。当出现异常时,显示一些错误也可能会有所帮助。他似乎不是在同一个文件中写入的。@njzk2我是一个she.:)我正在将其写入同一个文件您只需写入一个新文件即可。最后,重命名新文件以覆盖原始文件。@NilaniAlgiriyage:很抱歉。当我有疑问时,我通常会说“他们”。我以为open('c1')
不会打开与open('referer.txt','rw')
相同的文件?@Sherwood Wang谢谢它适合我