Как контролировать все расширения файлов или нет другого каталога? только в одной строке - PullRequest
0 голосов
/ 25 января 2020

У меня слишком много файлов, таких как «2020_01_20.jpg», и в своем коде я изменяю расширение файла, например 2019_01_20.png.

Когда я запускаю программу, я проверяю файл, не менял ли я его расширение раньше. Я делаю этот алгоритм зацикливанием, но я хочу сделать это в одной строке.

Как я могу сделать это в Python?

path='mydirectory/jpgfile/'
os.chdir(path)
files=os.listdir()

jpg_files = [file for file in files if file[-4:].lower()=='.jpg']

for file in jpg_files:
    pngfile="mydirectory/pngfile/"+file[0:-4]+".png"
    if(os.path.exists(pngfile)==False): #exist checking
              #code

Ответы [ 2 ]

1 голос
/ 25 января 2020

Эта строка возвращает список с именами .jpg файлов, которые не существуют как .png файлы.

no_png_files = [file for file in jpg_files if not os.path.exists(file[0:-4]+'.png')]
0 голосов
/ 25 января 2020

Похоже, что вы можете использовать pathlib здесь, чтобы перебрать ваш каталог и изменить расширение, например:

import pathlib

for jpg_file in pathlib.Path('mydirectory/').glob('*.jpg'):
    jpg_file.rename(jpg_file.with_suffix('.png'))

Вам не нужно беспокоиться, если вы ранее переименовали что-то в если да, то он не будет соответствовать шаблону *.jpg и поэтому не будет пытаться переименовать его, чтобы начать с.

...