Как добавить префикс к именам файлов, заменить символ и переместить в новый каталог?

#python #replace #rename

#python #заменить #переименовать

Вопрос:

Например, Файлы будут выглядеть как FG-4.jpg FG-5.jpg и т. Д. И Их Нужно скопировать в новый каталог и назвать test_FG_4.jpg test_FG_5.jpg и т. Д.

Вот обновленный код:

 import shutil
import glob
import os
InFolder = r"C:test_in"
OutFolder = r"C:test_out"

for f in glob.glob('*'):
    shutil.move(InFolder/*, OutFolder, copy_function=copy2)
    os.listdir(OutFolder)
    new_filename = f.replace("-","_")
    new_filename = "test_"   new_filename
    os.rename(f,new_filename)
  

Я получаю сообщение об ошибке

 File "c:copyRename2.py", line 8, in ?
  shutil.move(InFolder/*, OutFolder, copy_function=copy2)

invalid syntax: copyRename2.py, line 8, pos 26 in file c:copyRename2.py, line 8
shutil.move(InFolder/*, OutFolder, copy_function=copy2)
  

Первая попытка:

 import shutil
import glob
import os
InFolder = r"C:test_in"
OutFolder = r"C:test_out"

for f in glob.glob('*'):
    shutil.copyfile(f, OutFolder)
    new_filename = f.replace("-","_")
    new_filename = "test_"   new_filename
    os.rename(f,new_filename)
  

Комментарии:

1. Вот совет: когда вы переименовываете файл, вы также можете переместить его; потому что вы можете переименовать файл и весь его путь одновременно.

2. используйте shutil.move(InFolder/*, исходящая папка, copy_function=copy2) , чтобы скопировать ваши файлы в исходящую папку. Затем используйте os.listdir(OutFolderPath) . Он предоставит вам список файлов в вашем каталоге [file1, file2] InFolder, а затем вы сможете изменить каждое имя файла с помощью os.rename(filename, 'test_' filename)

3. Я обновил исходное сообщение, чтобы отразить предложенные вами изменения, но я не думаю, что реализовал их правильно. Новая ошибка также обновляется.

Ответ №1:

Я не уверен в том, чего вы хотите. Итак, эта программа проверяет наличие любого файла с расширением .jpg, а затем копирует их в новую папку («NewDir»), добавляя «Test_» к имени файла. Если папка не существует, программа создает папку. Возможно, вы сможете внести необходимые изменения на основе этой программы.

 import shutil
import os
newdir="NewDir"
for m in (os.listdir()):
    if m[-4:]==(".txt"):

        if os.path.isdir(newdir):
            shutil.copy(m,newdir "/" "Test_" m)
        else:
            os.mkdir(newdir)
            shutil.copy(m,newdir "/" "Test_" m)