python - 将数据传输到列表并与文件保持相同的长度
问题描述
我正在尝试从.txt
文件中读取数据并将它们保存到list
并保留数据结构。
示例.txt
文件:
num value1 value2
1 0.1 0.2
2 0.3
3 0.4
那么我想要的是生成列表[['num','value1','value2'],[1,0.1,0.2],[2,0.3,' '],[3,' ',0.4]]
这是我的代码:
L=[]
with open('txtfile.txt') as f:
for line in f.readlines():
L.append(line.split())
print(L)
- 结果
[['num', 'value1', 'value2'], ['1', '0.1', '0.2'], ['2', '0.3'], ['3', '0.4']]
并不如预期 - 如何修复我的代码以获得正确的结果
[['num','value1','value2'],[1,0.1,0.2],[2,0.3,' '],[3,'',0.4]]????
解决方案
这是一个格式可怕的文件,我个人要求一个新的文件来解析 Jakub 所说的选项卡或逗号分隔 (csv)。
也就是说,它们用制表符隔开,所以你只需要手动分割每一行。该split()
函数将消耗单词之间的所有空格。
for line in f.readlines():
line_number = line[0:3].strip()
first_element = line[3:11].strip()
second_element = line[11:].strip()
L.append([line_number, first_element, second_element])
print(L)
推荐阅读
- c# - WPF - 如何关闭在 RichTextBox 中打开的文件
- scala - 如何获得 AST 所代表的值的类型?
- c# - 如何从它自己的类从十进制转换为整数?
- java - 任何人都可以帮助纠正我及时倒退的方法吗?
- python - 为什么这段代码只记录某些冲突而不是全部?
- google-sheets - 我将如何根据工作表中的条件有条件地格式化单元格?
- haskell - 将数据类型转换为字符串以在不使用 `show` 的情况下显示
- jekyll - 上次修改日期挂钩到集合
- java - 当客户端断开连接时,Apache Ignite 会发生什么?
- c - C - 仅用一个指针递归交换 2 个字符