У меня есть несколько файлов txt, которые состоят из разных значений, например:

TFF,BAP,VAP,DNAAF5,CDKN2B,PDE2D,SLC22A19,RBPJ,STAT1,TAP2,HLA-

Я, вероятно, сделал неправильное разбиение в середине кода, и он разделен на '-', поэтому, когда я дважды щелкаю одно значение, он выбирает всю строку до '-'. Эта ошибка не влияет на функцию до этого шага. Теперь мне нужно подсчитать каждое возникшее значение с помощью «Счетчика», а счетчик неверный.

Мой код:

gene_calc = r'C:\Users\MrD\Top'
new_dir = r'C:\\Users\\MrD\\Br_Count\\Frequency\\'
for files in gene_calc:
    if not os.path.exists(new_dir):
        os.mkdir(new_dir)
    else:
        break
    os.chdir(gene_calc)
    for files in glob.glob(os.path.join('*.txt*')):
        #print(files) # iterating over files to check if prints
        with open(files) as f:
            content = (line for line in f.read().splitlines())
            list = Counter(Vol for Vol in content).most_common()
            with open(new_dir + files, "w") as output:
                output.write(str(list))

Папка gene_calc состоит из значений, как показано в примере выше.

Я не смог его повторно разделить (попробовал "if ',' in gene_list:" или изменил направление .reverse (), но это уже список с кортежами)

0
TheUndecided 4 Окт 2020 в 12:04

1 ответ

Лучший ответ

В данный момент вы считаете линии

content = (line for line in f.read().splitlines())

Для подсчета предметов вам нужно второе разделение на ',':

content = (item for line in f for item in line.strip().split(','))
1
Raphael 4 Окт 2020 в 10:10