我目前正在尝试根据相同的模式查找行。如果该行与模式匹配,我想在输出文件中打印该行。
以下是“ in.txt”中该行的示例:
in_file [0:2] declk
out_file [0:1] subclk
我目前在@gilch的帮助下拥有的脚本:
#!/usr/bin/python
import re
with open("in.txt", "r+") as f:
with open("out.txt, "w+") as fo:
for line in f:
if "\S*\s*[\d:\d]\s*\S*" in line:
fo.write(line) #need to fix this line
但是,是否可以使输出如下所示:
例如
在“ out.txt”中输出:
in_file [0] declk
in_file [1] declk
in_file [2] declk
out_file [0] subclk
out_file [1] subclk
答案 0 :(得分:1)
您需要导入re
模块才能使用正则表达式。
import re
with open("out.txt", "w+") as fo:
for line in f:
if re.match(r"\S*\s*\[-?\d*:?-?\d*\]\s*\S*", line):
fo.write(line)
此外,缩进是Python语法的一部分。结肠还不够。
这还假设f
已经包含您的行已经可以迭代了。 (以上代码从未分配给它。)
答案 1 :(得分:0)
尝试一下:
import re
with open("out.txt", "w+") as fo:
for line in f:
if re.match(r"\w+\s\[\d\:\d\]\s\w+",line):
fo.write(line)