我做了一些计算。我想从数据中提取两列,并使用python将它们保存在另一个文件中。
这是我到目前为止所做的:我将文件保存为.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']
我真的很感激这个问题的任何帮助。
答案 0 :(得分:3)
您必须指定正确的分隔符(默认为','
):
csv_f = csv.reader(f, delimiter='\t') # if the file is tab delimited
答案 1 :(得分:0)
import csv
f = open('file.txt')
csv_f=csv.reader(f)
for row in csv_f:
print row.split(" ").[1:3] # to get the second and third columns
f.close()
答案 2 :(得分:0)
这是一个不需要使用csv模块的解决方案
with open('test.txt', 'r') as data: #using the with keyword ensures files are closed properly
for line in data.readlines():
parts = line.split(',') #change this to whatever the deliminator is
print parts[0], parts[1] # parts[0] is the first column and parts[1] is the second column