如何在 python 的文本文件中找到特定的文本行?
How to find a specific line of text in a text file with python?
def match_text(raw_data_file, concentration):
file = open(raw_data_file, 'r')
lines = ""
print("Testing")
for num, line in enumerate(file.readlines(), 0):
w = ' WITH A CONCENTRATION IN ' + concentration
if re.search(w, line):
for i in range(0, 6):
lines += linecache.getline(raw_data_file, num+1)
try:
write(lines, "lines.txt")
print("Lines Data Created...")
except:
print("Could not print Line Data")
else:
print("Didn't Work")
我正在尝试打开 .txt 文件并搜索特定字符串。
如果您只是想将保存字符串的所有行写入文件,这就可以了。
def match_text(raw_data_file, concentration):
look_for = ' WITH A CONCENTRATION IN ' + concentration
with open(raw_data_file) as fin, open('lines.txt', 'w') as fout:
fout.writelines(line for line in fin if look_for in line)
解决了我自己的问题。以下工作用于查找特定行并获取匹配行之后的行。
def match_text(raw_data_file, match_this_text):
w = match_this_text
lines = ""
with open(raw_data_file, 'r') as inF:
for line in inF:
if w in line:
lines += line //Will add the matched text to the lines string
for i in range(0, however_many_lines_after_matched_text):
lines += next(inF)
//do something with 'lines', which is final multiline text
这将return多行加上用户想要的匹配字符串。如果问题令人困惑,我深表歉意。
def match_text(raw_data_file, concentration):
file = open(raw_data_file, 'r')
lines = ""
print("Testing")
for num, line in enumerate(file.readlines(), 0):
w = ' WITH A CONCENTRATION IN ' + concentration
if re.search(w, line):
for i in range(0, 6):
lines += linecache.getline(raw_data_file, num+1)
try:
write(lines, "lines.txt")
print("Lines Data Created...")
except:
print("Could not print Line Data")
else:
print("Didn't Work")
我正在尝试打开 .txt 文件并搜索特定字符串。
如果您只是想将保存字符串的所有行写入文件,这就可以了。
def match_text(raw_data_file, concentration):
look_for = ' WITH A CONCENTRATION IN ' + concentration
with open(raw_data_file) as fin, open('lines.txt', 'w') as fout:
fout.writelines(line for line in fin if look_for in line)
解决了我自己的问题。以下工作用于查找特定行并获取匹配行之后的行。
def match_text(raw_data_file, match_this_text): w = match_this_text lines = "" with open(raw_data_file, 'r') as inF: for line in inF: if w in line: lines += line //Will add the matched text to the lines string for i in range(0, however_many_lines_after_matched_text): lines += next(inF) //do something with 'lines', which is final multiline text
这将return多行加上用户想要的匹配字符串。如果问题令人困惑,我深表歉意。