У меня есть каталог с файлами как:
ab_list
bd_list
cd_list
mno_list
hk_list
pd_list
У меня есть другой файл с именем testfile вне этого каталога:
abc
que nw
ab_list ON 8
gs_list ON 9
hk_list OFF 9
bd_list ON 7
cd_list OFF 6
fr_list ON 5
mno_list ON 4
pq_list OFF 6
jk_list ON 7
pd_list OFF 8
Я хочу сравнить 2 и все файлы с именем файла и ON рядом с ним (если совпадают), их содержимое должно быть объединено в новый файл с именем merge_file. Другие файлы, которые соответствуют testfile, но имеют OFF, их имена должны быть напечатаны в new_file. содержимое ab_list bd_list и mno_list должно быть объединено в top_file
вот код, который я пробовал до сих пор:
from glob import glob
test_file_directory = "C:\\Users\\User\\Desktop\\Folder\\"
files1 = glob("*.txt")
with open(test_file_directory+"testfile.txt","r") as f:
files2 = [' '.join([l.split()[0],l.split()[1]]) for l in f.readlines()[3:]]
for f1 in files1:
for f2 in files2:
if f1[:-4]+' ON' == f2:
#print('match')
with open('merge_file.txt','a') as a:
with open(f1,'r') as r:
a.write(r.readlines()[1:]+'\n')
elif f1[:-4]+' OFF' == f2:
#print('match')
with open('match_file.txt','a') as a:
with open(f1,'r') as r:
a.write(f"{f2} {len(r.readlines())}\n")
elif f1[:-4]+' ON' == f2:
#print('match')
with open('match_file.txt','a') as a:
with open(f1,'r') as r:
a.write(f"{f2} {len(r.readlines())}\n")
Я хочу, чтобы содержимое файла, записываемого в merge_file, начиналось с чтения вторая строка файла вместо первой, а match_file также имеет имена файлов с включенным рядом с ним (он выключен с первого elif) a.write(r.readlines()[1:]+'\n'
в этой строке выдается ошибка, указывающая, что это строка, а не список.