Python 从文件中填写列表

Python 从文件中填写列表,python,string,python-2.7,Python,String,Python 2.7,我有一个文件,其中包含用逗号分隔的单词,如: tom,harry,ant,qqqq aa,ww,rr,gg,aa,hh,ss 我想拆分每个元素,用逗号分隔,并填写如下列表: array=['tom','harry','ant','qqqq','aa','ww','rr','gg','aa','hh','ss'] 到目前为止,我尝试了: array=list() for i in open(filename): element = i.split(',',len(i)) ar

我有一个文件,其中包含用逗号分隔的单词,如:

tom,harry,ant,qqqq
aa,ww,rr,gg,aa,hh,ss
我想拆分每个元素,用逗号分隔,并填写如下列表:

array=['tom','harry','ant','qqqq','aa','ww','rr','gg','aa','hh','ss']
到目前为止,我尝试了:

array=list()

for i in open(filename):
    element = i.split(',',len(i))
    array.append(element)
打印时,我遇到两个问题:

for i in array 
    print i
我获得了
['tom'、'harry'、'ant'、'qqqq\n']
['qqqq'、'aa'、'ww'、'rr'、'gg'、'aa'、'hh'、'ss\n']


我希望避免使用
\n
,并像前面所说的那样,使用换行符迭代文件生成行。显式删除换行符:

通过替换以下行:

element = i.split(',',len(i))
与:


您可以先剥离行以避免出现
\n
,然后使用
扩展
而不是
附加

for i in open(filename):
    line = i.strip()
    element = line.split(',')
    array.extend(element)
Extend用于将元素添加到数组中,而不是添加数组本身。结果将是:

['tom','harry','ant','qqqq','aa','ww','rr','gg','aa','hh','ss']
而不是:

[['tom','harry','ant','qqqq'], ['aa','ww','rr','gg','aa','hh','ss']]
您可以使用正则表达式:

>>> import re
>>> re.split(r"[,\n]+", open(filename).read())
['tom', 'harry', 'ant', 'qqqq', 'aa', 'ww', 'rr', 'gg', 'aa', 'hh', 'ss']

由于它看起来像一个逗号分隔的文件,我建议您使用

输出:

['tom', 'harry', 'ant', 'qqqq', 'aa', 'ww', 'rr', 'gg', 'aa', 'hh', 'ss']
一艘班轮:

with open('myFile.txt', 'r') as myFile: array = myFile.read().replace('\n', ',').split(',')
在赋值时,还应避免使用数组、列表等名称。这是个坏习惯


如果你有任何其他问题给我一个下午

使用
element=i[:-1].split(“,”,len(i))
import csv
with open('file') as f:
    csv_file = csv.reader(f)
    L = []
    for i in csv_file:
        L.append(i)
    print [i for j in L for i in j] 
['tom', 'harry', 'ant', 'qqqq', 'aa', 'ww', 'rr', 'gg', 'aa', 'hh', 'ss']
with open('myFile.txt', 'r') as myFile:
    array = myFile.read().replace('\n', ',').split(',')

for i in array:
    print i
with open('myFile.txt', 'r') as myFile: array = myFile.read().replace('\n', ',').split(',')