我试图扫描一个输入文件并打印出以某个字符串开头的部分行。文本文件是10000多行,但我只关心开始行,更具体地说是该行中的数据。为了澄清,这里有两行代码解释我想说的。你知道吗
inst "N69" "IOB",placed BIOB_X11Y0 R8 ,
inst "n0975" "SLICEX",placed CLEXL_X20Y5 SLICE_X32Y5 ,
以下是我到目前为止得到的代码:
searchfile = open("C:\PATH\TO\FILE.txt","r")
for line in searchfile:
if "inst " in line:
print line
searchfile.close()
如果我要查找所有以“inst”开头的行,那么这是很好的,但是我要特别查找以“inst”N“”或“inst”N“”开头的行。从那里,我只想提取以N或N开头的字符串
我的想法是首先将这些行(如上所示)提取到一个新的.txt文件中,然后运行另一个脚本,只获取包含N或N的部分行。在上面的示例中,我只关注N69和n0975。有没有更简单的方法?你知道吗
是的,
re
模块。你知道吗将返回所有匹配项的迭代器。 对于每个匹配,您都需要执行
.group(1)
以获得所需的数字。你知道吗请注意,您不需要首先使用此方法筛选文件。你可以为整个文件做这个。你知道吗
在您的案例中,输出将是:
使用
re.search()
函数:样本
file.txt
内容:输出:
这里有一个解决方案:
对于文件中的每一行,
startswith
部分检查该行是否以某个目标模式开始。如果是,它使用split
分割行,并打印第二个组件,即带有n
或N
的部分。你知道吗相关问题 更多 >
编程相关推荐