Я написал код для добавления строки, состоящей из имени файла, к файлу с этим именем файла, но он добавляет не только одну строку, но и имя всех файлов в этой папке, и строка добавляется после данные во всех файлах. Все, что я хочу, это добавить строку в начало файла.
С моим кодом я печатаю все три строки во всех файлах в конце каждого файла, т.е.
previous data...
parent a A B C D
parent b A B C D
parent c A B C D
это мой код
import os
import glob
os.chdir("C://Users//folder_naming_test_python//")
files = os.listdir()
#print("files=" )
#print(files)
d = []
for k in os.listdir():
d.append( k.split('.')[0])
#print("names=")
#print(d)
prefix = 'parent '
postfix = ' A B C D'
Headers = list(map(lambda orig_string :prefix + orig_string + postfix, d))
#print("Headers = ")
#print(Headers)
array_len = len(Headers)
for file in files:
for i in range(array_len):
f = open(file, 'a+')
a = f.read()
f.seek(0)
f.write(Headers[i]+'\n')
f.close()
f = open(file, 'r')
print(f.read())
Мой пример входных данных сказал бы; 3 файла в папке с именами
a.txt, b.txt, c.txt
то, что я ожидаю, не зависит от данных в файлах,
either
parent a A B C D or
parent b A B C D or
parent c A B C D
followed by the data in file.....
должны быть напечатаны в первой строке каждого файла соответственно (Примечание. строки a, b и c должны идти в отдельных файлах, а не все вместе во всех файлах)