如何将txt文件中的一列提取到列表(Python)中?
我有一个包含多个列的txt文件,每个列的长度不同,并且由不同数量的空格分隔。我只想从列表中找出一列。例如:我想打印列表中的第五列 我希望输出为[15500092005707500,…] 谢谢你的帮助如何将txt文件中的一列提取到列表(Python)中?,python,list,txt,Python,List,Txt,我有一个包含多个列的txt文件,每个列的长度不同,并且由不同数量的空格分隔。我只想从列表中找出一列。例如:我想打印列表中的第五列 我希望输出为[15500092005707500,…] 谢谢你的帮助 1010 Mob/Demob 1.000 LS 155,000.00 155,000.00 1020 Provide Site Office
1010 Mob/Demob 1.000 LS 155,000.00 155,000.00
1020 Provide Site Office 1.000 LS 9,200.00 9,200.00
101010 100% Perf. & Maint., and 100% Mater. and Lab. Bond 1.000 LS
101020 Advertise for Substantial Completion 1.000 LS 570.00 570.00
101030 Contractor Layout 1.000 ALOW 75,000.00 75,000.00
101040 Prepare Construction Management Plan 1.000 LS 2,850.00 2,850.00
101050 S&I 10x20 Mud Mat 1.000 LS 10,400.00 10,400.00
101060 Pre-Construction Survey 1.000 LS 370.00 370.00
101070 Post-Construction Survey 1.000 LS 370.00 370.00
如果使用python,可以使用readlines()方法将数据分解为字符串列表。从那里,您可以在空格中拆分它们,然后在相关列中为数据编制索引
有关如何在python中使用txt文件的示例,请参见。您可以使用此示例来解析文本文件:
重新导入
数据=[]
打开(“your_file.txt”、“r”)作为f_in:
对于地图中的线条(str.strip,f_in):
#跳过空行
如果不是直线:
持续
#超过2个空格是我们的列分隔符:
line=re.split(r“\s{2,}”,行)
#如果我们有6列,将最后一列添加到列表中:
如果len(line)==6:
n=int(浮点(第[5]行)。替换(“,”,“”))
data.append(n)
#如果不是,请添加空字符串:
其他:
数据。追加(“”)
打印(数据)
印刷品:
[1550009200',570075000285010400370370370]
熊猫有一种读取固定宽度数据文件的方法。在这种情况下,widths
指定每列的宽度。我使用了io.StringIO
将文件数据作为类似文件的对象提供给一个最小的、可复制的示例;但也可以传递文件名:
将熊猫作为pd导入
输入io
数据=“”\
1010移动/卸载1.000负载155000.00 155000.00
1020提供现场办公室1.000 LS 9200.00 9200.00
101010 100%性能和维护和100%材料。和实验室债券1000升
101020为基本完工做广告1000 LS 570.00 570.00
101030承包商布局图1.000至75000.00 75000.00
101040编制施工管理计划1.000 LS 2850.00 2850.00
101050 S&I 10x20泥浆垫1.000 LS 10400.00 10400.00
101060施工前测量1.000 LS 370.00 370.00
101070施工后测量1.000 LS 370.00 370.00
'''
df=pd.read_fwf(io.StringIO(数据),宽度=(14,54,10,9,10,12),头=无,千=',')
打印(列表(df[4]))
输出:
[155000.09200.0,nan,570.0,75000.0,2850.0,10400.0,370.0,370.0]
您使用什么语言?另外,不要张贴图片。以文本形式发布数据(格式正确)。我正在使用python以正确格式发布数据。我可以从txt文件复制数据并粘贴到问题上吗?(对不起,我还是新来的)编辑代码时,您可以按Ctrl
+K
设置文本格式。请不要故意破坏您的问题。我知道怎么做,只是不确定代码会是什么样子看着我。你的版本和我的几乎一模一样。向上投票。