Python3.x,如何读取文件内容(到一维列表中)

Python3.x,如何读取文件内容(到一维列表中),python,arrays,csv,Python,Arrays,Csv,我是python新手,只要有可能,我都会自学。我试图将包含整数的.csv文件中的数据读入一维数组(python列表) .csv文件如下所示: "1","2","3","4","5","6","7","8" "9","10","11","12","13","14","15","16" . . . l = [] f = open('file.csv', 'r') for line in f: l.append(line) f.close() 我试着这样做: "1","2","3","

我是python新手,只要有可能,我都会自学。我试图将包含整数的
.csv
文件中的数据读入一维数组(python列表)

.csv
文件如下所示:

"1","2","3","4","5","6","7","8"
"9","10","11","12","13","14","15","16"
.
.
.
l = []
f = open('file.csv', 'r')
for line in f:
      l.append(line)
f.close()
我试着这样做:

"1","2","3","4","5","6","7","8"
"9","10","11","12","13","14","15","16"
.
.
.
l = []
f = open('file.csv', 'r')
for line in f:
      l.append(line)
f.close()
我得到了一个“列表列表”(2D数组),而不是我想要的线性列表。 另外,我希望列表包含整数而不是字符串。

试试这个

with open("main.csv") as csvfile:
    tlines = [line.split(",", 2) for line in csvfile.readlines()]
    text = [" ".join(line) for line in tlines]
print text
它可能会对您有所帮助。

实际上,您得到的不是列表列表,而是字符串列表(文件中的行),每个字符串看起来都像一个列表。首先,您需要拆分行。您可以使用
line.split(“,”
)执行此操作,但是由于您有一个CSV文件,因此您应该只使用该模块。这还将为您删除
“…”

import csv
with open('test.csv') as f:
    r = csv.reader(f)
    lst = []
    for line in r:
          lst.append(line)
现在,我们有了一个实际的列表:
[['1','2','3','4','5','6','7','8',['9','10','11','12','13','14','15','16']

接下来,如果您想要一个包含所有行中所有数字的平面列表,您应该使用
extend
而不是
append
,您还可以将这些
str
强制转换为
int

    for line in r:
        lst.extend(map(int, line))
这将为您提供
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
。您也可以使用列表在一行中完成这一切:

    lst = [int(s) for line in r for s in line]

请正确设置代码格式答案已经出来了。阅读列表和文件导入怎么样?!您的代码应该为您提供带有字符串/行的1D数组-列表。请正确解释您的问题。如果您需要整数,则必须将每行拆分为子字符串列表,并使用
int()
w处理此列表中的每个元素。若你们将一个数字附加到列表中,那个么你们将得到1D数组。您还可以
l.extend(list)
l+=list
来获取1D数组。这不会解决整数和字符串的问题,也不会提供解释。为什么将
拆分
限制为
2
?这没有任何意义。我只是从我的旧项目中裁剪了这段代码,即它被2分割。请尝试提供问题的答案,而不是其他问题的答案。感谢您详细的回复tobias_k,我尝试了您的解决方案,效果非常好。顺便说一句,csv文件中不存在“…”,这只是我显示更多类似前面的行的方式。我有很多东西要学:)@johnym的“删除”…“我的意思是删除单个条目周围的引号。此外,如果这有助于解决你的问题,请考虑接受解决问题的答案。节日快乐!