读取存储在文本文件中的列表

Mus*_*ger 4 python string file list python-2.7

我有一个文件,其内容是python列表的形式,如下所示:

['hello','how','are','you','doing','today','2016','10.004']
Run Code Online (Sandbox Code Playgroud)

有没有办法将python文件读回列表对象?而不是使用.read()并将整个文件作为字符串读取.

编辑:对于那些可能感兴趣的人我使用(导入ast)遇到一个奇怪的问题,建议作为上述问题的解决方案.

我用它的程序有一个函数,从雅虎财务python模块获取历史股票数据.此函数与使用ast.literal_eval()的函数无关或依赖于该函数.

无论如何,每天晚上收市后,我从雅虎财经收集新批次的历史数据,昨晚我遇到了一个错误:simplejson.scanner.jsondecodeerror期待价值.

这很奇怪,因为它会为一些公司收集数据,但会为其他公司抛出错误,有时候为同一家公司工作,但一分钟之后它就无法工作.在尝试各种各样的事情来调试和解决问题后,记得最近添加了导入ast,并认为我应该试着看看它是否会产生影响,在删除导入后,程序恢复正常工作.

有谁知道为什么导入导致问题?@Apero为什么你最初警告不要使用eval或ast.literal_eval?

pp_*_*pp_ 12

你可以使用ast.literal_eval():

import ast

with open('filename.txt', 'r') as f:
    mylist = ast.literal_eval(f.read())
Run Code Online (Sandbox Code Playgroud)

  • @Apero:"从不,永远"是不好的建议.`eval`和`ast.literal_eval`是用于特定目的的工具.当您了解它们的工作方式和工作方式时,没有理由在适当的情况下避免它们.而不是说"永远不要使用它们",而是"在使用它们之前获得深刻的理解". (6认同)

Ant*_*rot 7

  1. 将文件从foo.txt重命名为foo.py
  2. my_list =在那条线前添加
  3. 在您的代码中: import foo; l = foo.my_list

更简单,不是吗?;-)