Я создаю небольшой скрипт для автоматического преобразования файлов из .jpg в .png:Python обрабатывать несколько раз
import glob, os
import Image
basedir = "C:\Users\User\Desktop\\fimg\images\\"
prefix = "picture"
def convert_png():
for jpg in glob.glob(os.path.join(basedir, '*.jpg')):
filename = f.rsplit('.')[-2]
njpg = Image.open(basedir + '%s.jpg' % (filename))
njpg.save(basedir + '%s.png' % (filename))
print "CONVERTED: " + filename + '.png'
for i, f in enumerate(os.listdir(basedir), 1):
convert_png()
Но с этим, кажется, преобразовать файл несколько раз (около 10), как это печатает преобразованное сообщение этой суммы, прежде чем переходить к следующему файлу. Здесь что-то не так, что заставляет это делать это?
C:\Users\User\Desktop\fimg>python test.py
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 16094.png
CONVERTED: 185500.png
CONVERTED: 185500.png
CONVERTED: 185500.png
CONVERTED: 185500.png
CONVERTED: 185500.png
CONVERTED: 185500.png
CONVERTED: 185500.png
CONVERTED: 185500.png
CONVERTED: 185500.png
CONVERTED: 185500.png
Рассмотрите возможность использования 'os.splitext()' вместо 'f.rsplit()' для захвата расширения файла http://docs.python.org/library/os.path.html?highlight=splitext#os. path.splitext – Levon
Является ли '' C: \ Users \ User \ Desktop \\ fimg \ images \\ "' просто опечаткой или находится в вашем реальном коде? У вас есть обратные косые черты, которые ускользают, а некоторые нет. –
@nadirs '\ U' и' \ D' предположительно не являются escape-символами, поэтому он будет работать, хотя, вероятно, это плохая идея оставить его таким. – Dougal