Как разделить разные текстовые файлы по номеру файла - PullRequest
0 голосов
/ 07 мая 2019

У меня есть 20 текстовых файлов в папке. имя файла представляется как

a 1.txt,a 2.txt,a 3.txt...

некоторые файлы работают по-разному, а другие по-другому

Я передал номера файлов в list lst_num=[1,6,15,16], например, все это нужно записать в один файл, а файлы, отсутствующие в списке, должны записать в другой файл

for file in fnames:
    nume=os.path.splitext(file)[0].split()[1]
    lst_num=[1,6,15,16]
    fp = open(file, 'r').read()
    for i in lst_num:
        if file=="a "+str(i)+".html":
            print(file)
        else: 
            print('--'+file)

все файлы в списке передаются в один текстовый файл нет в списке в другом файле

1 Ответ

0 голосов
/ 07 мая 2019

Ваш текущий код сравнивается с файлом html, но ваше расширение файла на самом деле txt
Также ваш двойной цикл for будет заканчиваться печатью одного и того же имени файла несколько раз

Вам на самом деле не нужно перебирать файлы и lst_num.
Просто создайте имена файлов, используя lst_num для записи в один файл, затем попросите имена файлов записать в другой файл, взяв разницу между всеми файлами и lst_num файлами

fnames = ['a 1.txt', 'a 2.txt'....]
lst_num=[1,6,15,16]

#All files in lst_num
in_list_files = ['a {}.txt'.format(item) for item in lst_num]

#All files outside lst_num
not_in_list_files = list(set(fnames) - set(in_list_files))

print(in_list_files)
print(not_in_list_files)

Выход будет

['a 1.txt', 'a 6.txt', 'a 15.txt', 'a 16.txt']
['a 2.txt', 'a 3.txt', 'a 4.txt', ....]
...