如何提取文本文件中所有行的某些部分?
How can I extract certain portions of all lines in a text file?
我有一个包含多行数据的文本文件,但我只需要知道一行的一小部分。从初始文件中,我可以将其缩小到包含我需要的信息的行,但我不确定如何只提取必要的数据:mfgcode、modelno 和 qtyavail 的内容。
import csv
with open('file.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
for line in csv_reader:
print(line)
打印结果文本文件,响应为:
['<part branch="1" core="0.00" cost="10.39" deliverytime="1" desc="" errcode="success" kit="" linecode="brand" linenum="1" list="30.08" mfgcode="nike" modelno="1110" qtyavail="40" qtyreq="1" uom="" />']
['<part branch="1" core="0.00" cost="10.66" deliverytime="1" desc="" errcode="success" kit="" linecode="brand" linenum="1" list="30.48" mfgcode="adidas" modelno="1109" qtyavail="209" qtyreq="1" uom="" />']
['<part branch="1" core="0.00" cost="20.17" deliverytime="1" desc="" errcode="success" kit="" linecode="brand" linenum="1" list="30.24" mfgcode="puma" modelno="1108" qtyavail="2" qtyreq="1" uom="" />']
如何只提取 mfgcode、modelno 和 qtyavail 的值?
使用 print(line[1]) 到 select 自定义单元格。
试试这个:
import csv
import re
with open('file.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
ff = []
for line in csv_reader:
ff.append([re.search('mfgcode="(.+?)"', line[0] ).group(1),re.search('modelno="(.+?)"', line[0] ).group(1),re.search('qtyavail="(.+?)"', line[0] ).group(1)])
df = pd.DataFrame(ff,columns =['mfgcode','modelno','qtyavail'])
df.to_csv("test.csv",index=False)
print (df)
输出:
mfgcode modelno qtyavail
0 nike 1110 40
1 adidas 1109 209
2 puma 1108 2
我有一个包含多行数据的文本文件,但我只需要知道一行的一小部分。从初始文件中,我可以将其缩小到包含我需要的信息的行,但我不确定如何只提取必要的数据:mfgcode、modelno 和 qtyavail 的内容。
import csv
with open('file.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
for line in csv_reader:
print(line)
打印结果文本文件,响应为:
['<part branch="1" core="0.00" cost="10.39" deliverytime="1" desc="" errcode="success" kit="" linecode="brand" linenum="1" list="30.08" mfgcode="nike" modelno="1110" qtyavail="40" qtyreq="1" uom="" />']
['<part branch="1" core="0.00" cost="10.66" deliverytime="1" desc="" errcode="success" kit="" linecode="brand" linenum="1" list="30.48" mfgcode="adidas" modelno="1109" qtyavail="209" qtyreq="1" uom="" />']
['<part branch="1" core="0.00" cost="20.17" deliverytime="1" desc="" errcode="success" kit="" linecode="brand" linenum="1" list="30.24" mfgcode="puma" modelno="1108" qtyavail="2" qtyreq="1" uom="" />']
如何只提取 mfgcode、modelno 和 qtyavail 的值?
使用 print(line[1]) 到 select 自定义单元格。
试试这个:
import csv
import re
with open('file.csv', 'r') as csv_file:
csv_reader = csv.reader(csv_file)
ff = []
for line in csv_reader:
ff.append([re.search('mfgcode="(.+?)"', line[0] ).group(1),re.search('modelno="(.+?)"', line[0] ).group(1),re.search('qtyavail="(.+?)"', line[0] ).group(1)])
df = pd.DataFrame(ff,columns =['mfgcode','modelno','qtyavail'])
df.to_csv("test.csv",index=False)
print (df)
输出:
mfgcode modelno qtyavail
0 nike 1110 40
1 adidas 1109 209
2 puma 1108 2