python 在TXT文件中按照某一字符串取出该字符串所在的行
日志TXT文件格式:但是我取的是某行下面的 “trans=23131”,有多个trans,下面代码可以取值到。
import re
file_name = '../data/logs.txt'
fp = open(file_name, 'r', encoding='utf-8')
lines = fp.readlines()
List = []
for line in lines:
line = line.strip()
if 'trans_num=' in line:
List.append(line)
a = len(List)
res = re.search('trans_num=([0-9A-Za-z]*)', List[a-1]).group()
print(res)
with open('../data/logs_xx.txt', 'w', newline='') as file:
file.write(res)
List.pop()
参考文献:https://blog.csdn.net/JENHE/article/details/106399732
f = open('20200528.txt', 'r', encoding='utf-8')
lines = f.readlines()
#print(lines)
for line in lines:
line = line.strip()
if 'Engine/' in line:
#print(line)
if 'Entry02' in line:
print(line)
f.close()
查询出TXT文件里面的关键字符串然后生成CSV文件代码:文章出处
import re
import csv
name = '../data/logs'
txtName = name + ".txt"
csvName = name + ".csv"
fp = open(txtName, "rb")
a = fp.read()
result = re.findall('trans_num=([0-9A-Za-z]*)', a.decode('utf-8')) # 正则匹配所有对应的数据
list1 = []
for i in result:
if i != '':
print(i)
list1.append(i)
with open(csvName, 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(list1)
list1.pop()