Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python文件中删除不需要的字符_Python_Regex_Split - Fatal编程技术网

从Python文件中删除不需要的字符

从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.

我正在读取一个文本文件,提取两列按空格分隔的内容,并将它们写入另一个文本文件。有些行中有“-”字符。我想删除它们并写入。下面的代码有什么问题?我也使用了line.replace(),但它不起作用

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谢谢它适合我