我必须复制一个文件但在此之前我需要删除带有数字的行。
这是我的档案:
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()
答案 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
这个答案假定您可能有包含数字的行,但您不想删除它们。我使用的模式以您的示例数据中的时间戳行为目标。