我已经做了一些计算。我想从数据中提取两列,并用python将它们保存在另一个文件中。如何从python的.txt文件中提取两列?
这是我迄今所做的:我将文件保存为.TXT,然后写这个剧本:
# -*- coding: utf-8 -*-
import csv
f = open('file.txt')
csv_f=csv.reader(f)
for row in csv_f:
print row[1:3] # to get the second and third columns
f.close()
当我运行该脚本的问题是:我得到这个错误:IndexError: list index out of range
。
我已经知道问题所在,因为它显示了每行中的所有结果,如列表中的字符。我怎么也不知道如何解决这个问题,让他们连续分开。
这是文件作为示例的两个第一行:
Ene: 1 -0.429787341139E+03 -0.42979E+03 -0.59461E+01 4296 0.664E+00 0.167E+01
Ene: 2 -0.395935688219E+03 0.33852E+02 -0.43868E+01 4356 0.711E+00 0.928E+00
,但是这是我当我使用打印行:
['Ene: 1 -0.429787341139E+03 -0.42979E+03 -0.59461E+01 4296 0.664E+00 0.167E+01']
['Ene: 2 -0.395935688219E+03 0.33852E+02 -0.43868E+01 4356 0.711E+00 0.928E+00']
我非常感谢所有提供帮助这个问题。
溶液'开放('path')。split('')[1:3]' –
文件中的条目之间的字符就是这些标签吗?那是'\ t'还是一些像“''这样的真实空间?您可以给您的csv读者一个关于“方言”的概念,即哪个字符将记录(行)中的字段分开。比通过csv模块读取它们容易。其他方面,最好将其读作文本文件并通过空间分割。 @self的建议无效,因为文件没有属性拆分。一个字符串在逐行阅读时会有这种方法(属性虽然),请指出制表符是否在输入分隔。谢谢 – Dilettant
他们是真实的空间,他们在原来的输出形式我的计算,我刚刚复制它们 – oranus