在PYTHON中没有[方括号]的打印列表到txt文件

时间:2013-10-07 19:52:55

标签: python list text

我正在尝试获取名称列表,按字母顺序排列并将其打印到新列表中。这是我的代码:

names = []
newnames = []
with open("C:/names.txt", "r") as infile:
    for row in infile.readlines():
       name = row.split()
       names.append(name)
    for x in sorted(names):
       newnames.append(x)
    print newnames
f = open("C:/newnames.txt", "w")
f.write("\n".join(str(x) for x in newnames))
f.close()

我的问题是除了括号外它打印得很好:

['Bradley']

['Harold']

['Jackson']

['Lincoln']

['Mercury']

['Shane']

['Sharon']

['Sherry']

['Xavier']

['Zoolander']

我希望该列表没有文本文件中的括号或引号

2 个答案:

答案 0 :(得分:1)

在我看来,你只需要调用列表中的元素即可。行name = row.split()将按括号中的任何内容拆分行(这是一个字符串),在这种情况下没有。所以

In [1]: "john".split()
Out[1]: ['john']

如果你的文件只是一个名单列表,例如: 约翰 哈利

然后你不需要拆分行,如果你愿意,那么只需索引第0个元素:

row.split()[0]

将为您提供列表中的内容而不是列表。

答案 1 :(得分:0)

row.split返回一个列表,因此名称包含列表。请改用extend

names.extend(row.split())