我有一个包含输入的文本文件:
1 2
3 4
5 6
7 8
我需要以下形式的结果或输出
array_1 = [1, 3, 5, 7]
array_2 = [2, 4, 6, 8]
我尝试了以下代码:
arr=[]
f = open("file_path","r")
#read line into array
for line in f.read lines():
array_1 = arr.append(line.split()[0])
array_2 = arr.append(line.split()[1])
print(arr)
答案 0 :(得分:1)
为什么要附加和分配结果? (即None
)。结果,所有数字落在arr
中,array_1
和array_2
均为None
一些修复:
append
,忘记arr
像这样:
array_1 = []
array_2 = []
f = open("file_path.txt","r")
#read line into array
for line in f.readlines():
array_1.append(int(line.split()[0]))
array_2.append(int(line.split()[1]))
现在更多pythonic:
readlines
,一行一行地阅读with
块打开文件,因此退出该块时将关闭文件像这样:
array_1 = []
array_2 = []
with open("file_path.txt") as f:
for line in f:
item1,item2 = map(int,line.split())
array_1.append(item1)
array_2.append(item2)
答案 1 :(得分:1)
我将使用pandas软件包来处理此类文件。
您可以通过以下方式从列中获取两个数组:
import pandas as pd
df = pd.read_csv("D:/tmp/file.csv",delimiter=" ", header=None)
array_1 = df[0].values
array_2 = df[1].values
输出将是:
>>> array_1
array([1, 3, 5, 7], dtype=int64)
>>> array_2
array([2, 4, 6, 8], dtype=int64)