我试图在文本文件中搜索字符串的第一个实例并返回第一行中的所有其他内容,但我当前的程序找到并返回最后一行字符串。
知道我需要做什么吗?
谢谢!
我的代码是这样的:
#Open search file as read only
with open(fullpath, 'r') as searchfile:
#Clear variable names
partname = partsize = None
#Search file for strings, trim lines and save as variables
for line in searchfile:
if "PART FILE NAME" in line:
x = line
partname = x[18:-1]
if "PART SIZE" in line:
y = line
partsize = y[18:-1]
#Open csv file, write variables, close csv file
storefile = open("C:/Documents and Settings/Desktop/blue pega3.csv", 'a')
storefile.write("%s,%s,%s\n" %(partname, partsize, fullpath))
storefile.close()
#Close search file
searchfile.close() `
请您参考如下方法:
您的代码返回最后的匹配项,因为您遍历整个文件,不断覆盖 partname 和 partsize。如果它们尚未定义,您只能覆盖它们:
partname = partsize = None
with open(fullpath, 'r') as searchfile:
for line in searchfile:
if partname is None and "PART FILE NAME" in line:
partname = line[18:-1]
if partsize is None and "PART SIZE" in line:
partsize = line[18:-1]
if partname is not None and partsize is not None:
break
如果两行都已找到,最后一个 if 将停止循环遍历文件——我们不需要继续搜索。
