Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:将文件中的列表放入列表_Python_List_File - Fatal编程技术网

Python:将文件中的列表放入列表

Python:将文件中的列表放入列表,python,list,file,Python,List,File,我对python非常精通 我有一个坐标列表文件。似乎是这样的: [-122.661927,45.551161], [-98.51377733,29.655474], [-84.38042879, 33.83919567]. 我正试图将其放入一个列表中: with open('file.txt', 'r') as f: for line in f: list.append(line) 我得到的结果是 ['[-122.661927,45.551161], [-98.513

我对python非常精通

我有一个坐标列表文件。似乎是这样的:

[-122.661927,45.551161], [-98.51377733,29.655474], [-84.38042879, 33.83919567].
我正试图将其放入一个列表中:

with open('file.txt', 'r') as f:
    for line in f:
        list.append(line)
我得到的结果是

['[-122.661927,45.551161], [-98.51377733,29.655474], [-84.38042879, 33.83919567]']

sombody能帮我摆脱行乞和列表末尾的“'”标记吗

尝试使用
ast.literal\u eval

范例-

import ast
lst = []
with open('file.txt', 'r') as f:
    for line in f:
        lst.extend(ast.literal_eval(line))
从文件-

ast.literal\u eval(节点或字符串)

安全地计算表达式节点或包含Python文本或容器显示的Unicode或Latin-1编码字符串。提供的字符串或节点只能由以下Python文本结构组成:字符串、数字、元组、列表、dicts、boolean和None


另外,请注意使用
list
作为变量名是不好的,因为它会隐藏
list
内置函数。

使用
ast.literal\u eval
将字符串列表转换为列表对象,此外,您还可以使用列表理解在比python循环更快的文件对象上循环,并直接返回列表:

import ast
with open('file.txt', 'r') as f:
     my_list=[ast.literal_eval(line) for line in f]
输出:

In [83]: answer
Out[83]: 
[(-122.661927, 45.551161),
 (-98.51377733, 29.655474),
 (-84.38042879, 33.83919567)]

你放在这里的方式,实际上你只有一行。您必须改进代码以操作字符串并将内容拆分为行。很抱歉,我粘贴了它,它位于文件中的行中。谢谢,我尝试了,但出现了一个错误:raise VALUERROR('格式错误的节点或字符串:'+repr(节点))VALUERROR:格式错误的节点或字符串:列表名称只是一个示例,因此很明显它是一个列表,它有一个不同的真实名称:)你能打印出
并告诉结果是什么吗?@KasiaSawicka如果输入与你在问题中给出的一样,这应该可以工作。如果它不起作用,你能更新它不起作用的
行的外观吗?它是:[-122.661927,45.551161],-98.5137733,29.655474],-84.38042879,33.83919567]这应该起作用,你确定你使用的是我给出的确切代码吗?谢谢,但我想去掉“'”标记,并有类似的东西[[-122.661927,45.551161],-98.513777733,29.655474],-84.38042879,33.83919567]。@KasiaSawicka:Ack!我忘记做什么了。请查看编辑!
In [83]: answer
Out[83]: 
[(-122.661927, 45.551161),
 (-98.51377733, 29.655474),
 (-84.38042879, 33.83919567)]