从文件中读取列表

时间:2013-06-23 09:29:50

标签: python list python-2.7 with-statement

我想从.txt文件中读取,该文件的数据以列表格式保存。

['http://www.example.com/?date=20080301',
 'http://www.example.com/?date=20080302',
 'http://www.example.com/?date=20080303']

我有以下代码:

with open("test.txt", 'r') as file_name:
    for urls in file_name:
        for url in eval(urls):
            print url

它与完全一致的文件(只有不同​​的链接)运行良好,现在突然之间,它引发了一个例外:

File "<string>", line 1
    ['http://www.example.com/?date=20080301',
                                            ^
SyntaxError: unexpected EOF while parsing

你有什么想法吗?

1 个答案:

答案 0 :(得分:3)

使用ast.literal_eval()

import ast
with open("test.txt", 'r') as file_name:
    lists = ast.literal_eval(file_name.read())
    for url in lists:
        print url

它比使用eval更有效率,因为并引用文档,它“安全地评估[s]表达式节点或包含Python表达式的字符串。”