0

我想从一个.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

你有什么想法?

4

1 回答 1

3

Use 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

It's much more efficient than using eval because, and quoting from the docs, it "safely evaluate[s] an expression node or a string containing a Python expression."

于 2013-06-23T09:30:45.950 回答