#python
#python
Вопрос:
Я хочу добавить символ в конце каждой строки во все файлы в папке, поэтому я написал некоторый код, чтобы выполнить итерацию по каждому файлу и добавить желаемое изменение, однако выходные файлы имеют разные имена файлов, отличные от оригиналов, ниже приведен код, который я собрал
import os
output = '/home/test/Playground/Python/filemodification/output/'
def modification():
with open(files, 'r') as istr:
with open(str(output) str(files), 'w') as ostr:
for line in istr:
line = line.rstrip('n') 'S'
print(line, file=ostr)
directory = '/home/test/Playground/Python/filemodification/input'
for files in os.scandir(directory):
#print(files.path)
print(files)
#print(output)
#print(type(files))
modification()
Как только я запускаю код, я получаю следующее имя файла
<DirEntry 'input.txt'>
и это исходное имя файла
input.txt
Я знаю, что проблема, вероятно, связана с этим
with open(str(output) str(files), 'w') as ostr:
но я не нашел способа выполнить эту задачу по-другому
Если бы кто-нибудь мог указать мне правильное направление или предоставить пример кода, который может выполнить эту задачу, я был бы очень признателен
Спасибо
Комментарии:
1. Возможно, вы захотите использовать
listdir()
метод
Ответ №1:
os.scandir
возвращает os.DirEntry
объекты. Вы можете получить их имя файла, обратившись к их .name
атрибуту или их полному пути .path
.
Например.:
for entry in os.scandir(directory):
print(entry.path)