我从文本文件中读取数据.我的数据的每一行都有以下结构
(110, 'Math', 1, 5)
(110, 'Sports', 1, 5)
(110, 'Geography', 4, 10)
(112, 'History', 1, 9)
....
Run Code Online (Sandbox Code Playgroud)
当我从文件中读取数据时,它被解析为字符串.因此,对于所有行,我将数据解析为字符串列表.但是我想创建一个包含4个不同元素(整数和字符串)的列表.如何以元素方式读取文件而不将其解析为字符串?
我读取文件的代码如下:
data1 = [line.strip() for line in open("data.txt", 'r')]
Run Code Online (Sandbox Code Playgroud)
假设格式总是如您所描述的那样(即对应于Python元组语法),这可以通过以下方式轻松完成ast.literal_eval():
>>> ast.literal_eval("(110, 'Math', 1, 5)")
(110, 'Math', 1, 5)
Run Code Online (Sandbox Code Playgroud)
所以,完整的代码是:
import ast
with open('data.txt') as fp:
data = [ast.literal_eval(line) for line in fp]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |