删除python

时间:2018-05-17 01:35:14

标签: python regex file

我必须复制一个文件但在此之前我需要删除带有数字的行。

这是我的档案:

0:00:00.000,0:00:06.410
let's start with

0:00:04.470,0:00:10.769
something

0:00:06.410,0:00:12.360
easy

我希望得到类似的东西:

let's start with something easy

这是我的代码:

readFile = open("file.sbv")
writeFile = open("newwordlist.sbv","w")

for line in readFile: 
    newline = line.rstrip('\r\n')
    writeFile.write(newline)
readFile.close()
writeFile.close()

2 个答案:

答案 0 :(得分:2)

您不需要正则表达式,只需使用any(i.isdigit() for i in line)

即可
with open('in.txt') as infile, open('out.txt', 'w') as outfile:
  for line in infile:
    if not any(i.isdigit() for i in line):
      outfile.write(line)
  

in.txt

0:00:00.000,0:00:06.410
let's start with
0:00:04.470,0:00:10.769
something
0:00:06.410,0:00:12.360
easy
  

out.txt

let's start with
something
easy

如果您想将结果放在一行,可以写line.rstrip('\r\n')而不是line,但这取决于您的文件使用哪些行结尾,它可能只是{{1} }。

答案 1 :(得分:0)

您可以尝试使用\n来识别数字行。假设该行匹配此模式,那么您可以将其写出来:

re.search

这个答案假定您可能有包含数字的行,但您不想删除它们。我使用的模式以您的示例数据中的时间戳行为目标。