创建嵌套字典以遍历我的文本文件和文件夹以创建多个关键字典

阿里·哈基姆扎德

我在 50 个文件夹中有 counts.txt 文件,每个文件夹都与一个样本相关。counts.txt 中有两列:第一列是字符串,另一列是数字。我尝试通过它们制作嵌套字典。目标是将counts.txt和文件夹的第一列用作字典的键,将counts.txt中的第二列用作值。不幸的是,文件夹列表,我想在它们上循环以给我正确的形状,但它不起作用并面临问题!

import os
from natsort import natsorted
path1 = "/home/ali/Desktop/SAMPLES/"


data_ali={}
samples_name=natsorted(os.listdir(path1))


data_ali = {}

samples_name=natsorted(os.listdir(path1))
for i in samples_name:    
    with open(path1+i[0:]+"/counts.txt","rt") as fin:    
        for l in fin.readlines():    
            l=l.strip().split()    
            if l[0][:4]=='ENSG':    
                gene=l[0]    
                data_ali[gene]={}       
                reads=int(l[1])    
                data_ali[gene][samples_name]=reads
print(data_ali)




i expect the output like this: 
'ENSG00000120659': {
    'Sample_1-Leish_011_v2': 14,
    'Sample_2-leish_011_v3': 7,
    'Sample_3-leish_012_v2': 6,
    'Sample_4-leish_012_v3': 1,
    'Sample_5-leish_015_v2': 9,
    'Sample_6-leish_015_v3': 3,
    'Sample_7-leish_016_v2': 4,
    'Sample_8-leish_016_v3': 8,
    'Sample_9-leish_017_v2': 8,
    'Sample_10-leish_017_v3': 2,
    'Sample_11-leish_018_v2': 4,
    'Sample_12-leish_018_v3': 4,
    'Sample_13-leish_019_v2': 7,
    'Sample_14-leish_019_v3': 4,
    'Sample_15-leish_021_v2': 12,
    'Sample_16-leish_021_v3': 5,
    'Sample_17-leish_022_v2': 4,
    'Sample_18-leish_022_v3': 2,
    'Sample_19-leish_023_v2': 9,
    'Sample_20-leish_023_v3': 6,
    'Sample_21-leish_024_v2': 22,
    'Sample_22-leish_024_v3': 10,
    'Sample_23-leish026_v2': 9,
    'Sample_24-leish026_v3': 5,
    'Sample_25-leish027_v2': 4,
    'Sample_26-leish027_v3': 1,
    'Sample_27-leish028_v2': 7,
    'Sample_28-leish028_v3': 5,
    'Sample_29-leish032_v2': 8,
    'Sample_30-leish032_v3': 2
     }
亚历克斯·霍尔

试试这个:

        if l[0][:4] == 'ENSG':
            gene = l[0]
            reads = int(l[1])
            data_ali.setdefault(gene, {})[i] = reads

两个重要的变化:

  1. 您的代码data_ali[gene]={}总是清除以前存在的内容并创建一个新的空字典。setdefault仅当键gene不存在时才创建字典
  2. 第二个键应该是i,而不是列表samples_name

完整的代码清理:

import os
from natsort import natsorted

root = "/home/ali/Desktop/SAMPLES/"

data_ali = {}

for sample_name in natsorted(os.listdir(root)):
    with open(os.path.join(root, sample_name, "counts.txt"), "r") as fin:
        for line in fin.readlines():
            gene, reads = line.split()
            reads = int(reads)
            if gene.startswith('ENSG'):
                data_ali.setdefault(gene, {})[sample_name] = reads

print(data_ali)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从文本文件创建垂直字典

来自分类Dev

从文本文件创建字典

来自分类Dev

根据文本文件创建字典

来自分类Dev

批处理文件文件夹和文本文件的创建

来自分类Dev

Julia中的字典帮助-从文本文件创建字典

来自分类Dev

Python-迭代文本文件并创建字典的字典

来自分类Dev

如何从树状文件目录文本文件创建嵌套字典对象?

来自分类Dev

从给定的文本文件创建字典(python)

来自分类Dev

如何基于文本文件创建字典?

来自分类Dev

在python上从文本文件创建字典

来自分类Dev

从给定的文本文件创建字典(python)

来自分类Dev

读取文本文件并创建 Python 字典

来自分类Dev

从缩进文本文件在python中创建树/深层嵌套字典

来自分类Dev

使用缩进的文本文件中的列表创建树/深层嵌套字典

来自分类Dev

使用缩进的文本文件中的列表创建树/深层嵌套字典

来自分类Dev

使用Arraylist和文本文件的字典程序

来自分类Dev

如何从具有相同名称的文本文件创建文件夹和文件,以插入具有相应名称的文件?

来自分类Dev

如何创建多个文件夹并通过从文本文件中读取行来命名它们?

来自分类Dev

在特定目录中的文本文件中指定创建文件夹/子文件夹/文件

来自分类Dev

文本文件中数据的嵌套字典

来自分类Dev

创建一个批处理文件,该文件将文本文件和文件夹中的文件名进行比较,如果匹配,它将文件复制到另一个文件夹

来自分类Dev

使用文件夹名称在所有文件夹中创建空文本文件

来自分类Dev

Python文件夹创建和读取文本文件

来自分类Dev

自动创建文件夹内容的文本文件

来自分类Dev

从文本文件中特定行的部分创建文件夹

来自分类Dev

在python中从两个不同的文件夹创建文本文件

来自分类Dev

未在 Swift 的 applicationSupport 文件夹中创建文本文件

来自分类Dev

从文本创建文件和文件夹

来自分类Dev

使用XSLT创建多个XML文件和文件夹

Related 相关文章

  1. 1

    从文本文件创建垂直字典

  2. 2

    从文本文件创建字典

  3. 3

    根据文本文件创建字典

  4. 4

    批处理文件文件夹和文本文件的创建

  5. 5

    Julia中的字典帮助-从文本文件创建字典

  6. 6

    Python-迭代文本文件并创建字典的字典

  7. 7

    如何从树状文件目录文本文件创建嵌套字典对象?

  8. 8

    从给定的文本文件创建字典(python)

  9. 9

    如何基于文本文件创建字典?

  10. 10

    在python上从文本文件创建字典

  11. 11

    从给定的文本文件创建字典(python)

  12. 12

    读取文本文件并创建 Python 字典

  13. 13

    从缩进文本文件在python中创建树/深层嵌套字典

  14. 14

    使用缩进的文本文件中的列表创建树/深层嵌套字典

  15. 15

    使用缩进的文本文件中的列表创建树/深层嵌套字典

  16. 16

    使用Arraylist和文本文件的字典程序

  17. 17

    如何从具有相同名称的文本文件创建文件夹和文件,以插入具有相应名称的文件?

  18. 18

    如何创建多个文件夹并通过从文本文件中读取行来命名它们?

  19. 19

    在特定目录中的文本文件中指定创建文件夹/子文件夹/文件

  20. 20

    文本文件中数据的嵌套字典

  21. 21

    创建一个批处理文件,该文件将文本文件和文件夹中的文件名进行比较,如果匹配,它将文件复制到另一个文件夹

  22. 22

    使用文件夹名称在所有文件夹中创建空文本文件

  23. 23

    Python文件夹创建和读取文本文件

  24. 24

    自动创建文件夹内容的文本文件

  25. 25

    从文本文件中特定行的部分创建文件夹

  26. 26

    在python中从两个不同的文件夹创建文本文件

  27. 27

    未在 Swift 的 applicationSupport 文件夹中创建文本文件

  28. 28

    从文本创建文件和文件夹

  29. 29

    使用XSLT创建多个XML文件和文件夹

热门标签

归档