在Python中,我想在简单的CSV中列出每个数字......
CSV:
07555555555, 07555555551
这就是我的尝试:
for number in csv.reader(instance.data_file.read().splitlines()):
print(number)
然而,这会将整个事物输出为像这样的一个字符串......
['07446164630', '07755555555']
为什么?
我也尝试像这样循环
for i, item in enumerate(csv.reader(instance.data_file.read().splitlines())):
print(i)
print(item)
我不确定我是否完全理解我做错了什么,所以在解释如何打印文件中的每个数字方面有任何帮助都是惊人的。
答案 0 :(得分:2)
csv.reader
解析CSV的每一行,因此您的循环正在迭代CSV文件的行。由于两个数字都在一行中,因此可以将它们放在一个数组中。如果要迭代每行的值,请使用另一个嵌套的for
循环。:
for line in csv.reader(instance.data_file.read().splitlines()):
for item in line:
number = int(item)
print(number) # or whatever you want
或使用enumerate
获取每个数字的索引:
for line in csv.reader(instance.data_file.read().splitlines()):
for index, item in enumerate(line):
number = int(item)
print(index, number) # or whatever you want
答案 1 :(得分:-1)
使用 numpy的展平模块将矩阵转换为1D数组:
import numpy as np
data = np.loadtxt(file_name, delimiter=',').flatten()
for item in data: print(item)