Как взять \ переместить файл с указанным c именем в python с помощью move () - PullRequest
0 голосов
/ 27 февраля 2020

например, у меня есть этот сценарий:

 for folder, subfolders, files in os.walk(os.getcwd()):
      print(f"we are in folder: {folder}")
      print(f"subfolder present: {subfolders}")

      for file in files: 
           if file.startswith("00"): #give me all the files that start with '00'
                print(file)

                 try:
                     shutil.move("C:\\Users\\fulvi\\Desktop\\Python_3.8\\esperimento\\00_00_01_02_0001.png", "C:\\Users\\fulvi\\Desktop\\Python_3.8\\esperimento\\altro"

                except shutil.Error:
                     print("\ngià esiste il file dentro la cartella")

с помощью этого сценария я перемещаю только один файл за раз и только с правилом «начать с 00»!

предположим, что мы иметь файлы .png этого типа:

00_00_01_02_0001.png
00_01_02_00_0002.png
01_01_02_02_0003.png

Я хочу изменить сценарий, чтобы он меня, например, взял все .png файлы, которые имеют 00 в качестве третьего параметра. Или он принимает все файлы .png, для которых в качестве первого параметра указан 01 и т. Д.

Я хочу выполнить итерацию на основе указанного c имени файла .png, но не полного имени файл!

1 Ответ

0 голосов
/ 27 февраля 2020

Поскольку все ваши файлы имеют одинаковый формат именования, я бы посоветовал вам использовать нарезку строк. Таким образом, вы можете проверять символ строки и делать с ним все, что вам нравится.

См. здесь , чтобы узнать больше о нарезке строки.

После того, как вы примените это, вы должны иметь что-то вроде:

 for folder, subfolders, files in os.walk(os.getcwd()):
      print(f"we are in folder: {folder}")
      print(f"subfolder present: {subfolders}")

      for file in files: 
           if file[0:2]=="01": #this would check the first parameter
                print(file)

                 try:
                     shutil.move("C:\\Users\\fulvi\\Desktop\\Python_3.8\\esperimento\\00_00_01_02_0001.png", "C:\\Users\\fulvi\\Desktop\\Python_3.8\\esperimento\\altro"

                except shutil.Error:
                     print("\ngià esiste il file dentro la cartella")
           elif file[6:8] == "00":#this would check the thrid parameter
                print(file)

                 try:
                     shutil.move("C:\\Users\\fulvi\\Desktop\\Python_3.8\\esperimento\\00_00_01_02_0001.png", "C:\\Users\\fulvi\\Desktop\\Python_3.8\\esperimento\\altro"

                except shutil.Error:
                     print("\ngià esiste il file dentro la cartella")

...