Неправильное имя файла при переборе файлов

#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)