使用Python将各个字段名中的数据放置在CSV文件中
我正在写一个脚本,提取txt文件中的数据并写入CSV文件…我可以分割数据,但无法将其放置在正确的字段名中 文件如下所示:使用Python将各个字段名中的数据放置在CSV文件中,python,csv,python-3.x,split,Python,Csv,Python 3.x,Split,我正在写一个脚本,提取txt文件中的数据并写入CSV文件…我可以分割数据,但无法将其放置在正确的字段名中 文件如下所示: xxxx = "qqqqqqq 5466 78455" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa" xxxx = "qqqqqqq 8795 32133" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa" xxxx = "qqqqqqq 5995 21384" zzzz = "hhhh" mmmm
xxxx = "qqqqqqq 5466 78455" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa"
xxxx = "qqqqqqq 8795 32133" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa"
xxxx = "qqqqqqq 5995 21384" zzzz = "hhhh" mmmm = "aaaa"
xxxx = "qqqqqqq 6546 12346" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa"
xxxx = "qqqqqqq 7895 13246" yyyy = "wwww" zzzz = "hhhh" mmmm = "aaaa"
xxxx = "qqqqqqq 64654 94343" yyyy = "wwww" mmmm = "aaaa
我使用的代码是:
import csv
import re
fileread = str(input("enter the name of the file :"))
fread = open(fileread, "r")
resultFile = open("out3.csv",'w')
wr = csv.writer(resultFile)
try:
for lines in fread:
if "attack" in lines:
regexs = re.findall(r'\"(.+?)\"',lines)
wr.writerow(regexs)
finally:
fread.close()
resultFile.close()
结果如下:
xxxx yyyy zzzz mmmm
qqqqqqq 5466 78455 wwww hhhh aaaa
qqqqqqq 8795 32133 wwww hhhh aaaa
qqqqqqq 5995 21384 hhhh aaaa
qqqqqqq 6546 12346 wwww hhhh aaaa
qqqqqqq 7895 13246 wwww hhhh aaaa
qqqqqqq 4654 94343 wwww aaaa
但我需要的输出是:
xxxx yyyy zzzz mmmm
qqqqqqq 5466 78455 wwww hhhh aaaa
qqqqqqq 8795 32133 wwww hhhh aaaa
qqqqqqq 5995 21384 hhhh aaaa
qqqqqqq 6546 12346 wwww hhhh aaaa
qqqqqqq 7895 13246 wwww hhhh aaaa
qqqqqqq 4654 94343 wwww aaaa
我不知道如何放置它。。。。。
请帮忙!!!帮我做这个
提前感谢……问题是正则表达式甚至不尝试匹配字段名,它只匹配引号中的所有内容 如果您编写的正则表达式与字段名匹配,那么您将得到字段名。例如:
re.findall(r'(\S+?)\s*=\s*\"(.+?)\"',line)
这将匹配一组非空白字符,后跟任何空白、一个=
、任何空白和一组引号中的任何内容。由于有两个捕获组,每个输出元素将是一个2元组,如:
('xxxx', 'qqqqqqq 5466 78455')
因此,您可以将2元组列表转换为dict
,并使用csv.DictWriter
将字段名与csv卷名匹配