逐行阅读,然后拆分每行python3的每个对象

2024-07-08 17:42:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我开始使用python,最近,我一直在努力使用python。我有以下txt文档:

A001 A001.bam A001.bai
A002 A002.bam A002.bai
A003 A003.bam A003.bai
A005 A005.bam A005.bai
A006 A006.bam A006.bai

我想读每一行并创建一个列表列表。例如:

[[A001 A001.bam A001.bai][A002 A002.bam A002.bai][A003 A003.bam
 A003.bai][A005 A005.bam A005.bai][A006 A006.bam A006.bai]]

然后,我想分离每行的每个对象。有点像下面这个例子:

a,b,c = x.split(“,”)

a ‘blue’

b ‘red’

c ‘green’

所以最后看起来有点:

a 'A001'
b 'A001.bam'
c 'A001.bai'

我已经到了:

file = open("path_to_file/file.txt")
map = file.read().splitlines()
samp = []
for line in map:
    samples = line.split(" ")
    samp.append(samples)
    samp[line].split(" ")
print(samp)

但它不起作用,我感到非常困惑。有人能帮这个初学者吗?你知道吗

提前谢谢


Tags: txtmap列表linefilesplitsamplesbam
2条回答

我相信您希望将它维护为一个列表列表,这样做只需从代码中删除一行即可。你知道吗

file = open("path_to_file/file.txt")
map = file.read().splitlines()
samp = []
for line in map:
    samples = line.split(" ")
    samp.append(samples)
print(samp)
file.close()

但是您可以通过这样做来简化它,因为您可以直接循环文件的行:

with open("filename") as file: 
    samp = []
    for line in file:
        samp.append(line.split(" "))
    print(samp)

可以将^{}与键一起使用,从文件中创建对象列表:

with open('test.txt') as f:
  arr = [dict(zip(['a', 'b', 'c'], line.split())) for line in f]

print(arr)

输出:

[{'a': 'A001', 'b': 'A001.bam', 'c': 'A001.bai'}, {'a': 'A002', 'b': 'A002.bam', 'c': 'A002.bai'}, {'a': 'A003', 'b': 'A003.bam', 'c': 'A003.bai'}, {'a': 'A005', 'b': 'A005.bam', 'c': 'A005.bai'}, {'a': 'A006', 'b': 'A006.bam', 'c': 'A006.bai'}]

相关问题 更多 >

    热门问题