2016-08-25 4 views
-2

Я знаю, что есть скрипты python, которые могут изменить имя файла. Но у меня есть небольшая проблема. . Я пытаюсь загрузить некоторые изображения в магазин yahoo. Имена изображений должны быть таким же, как идентификатор продукта для сервера, чтобы связать изображения с соответствующим продуктом. (Я все еще не могу понять, почему у них не просто поле в базе данных, что вы можете указать имя, которое вы установили, но в любом случае) У меня есть все мои изображения в одном файле для всех моих продуктов (поставляемых моим поставщиком), но имена - это что-то вроде benj7007.jpg У меня также есть файл продукта csv, в котором перечислены номера sku и имя изображения. Когда я загружаю продукты в магазин yahoo, я использую номер SKU для идентификатора продукта. я могу легко создать текстовый файл, который будет список SKU и имя изображения для группы продуктов я отправляю и использовать его для питона читать из SKU Номер 700756 Image benj7007.jpgизменить имена изображений из текстового файла python

мне нужно изменить изображение имя всех изображений в соответствии с SKU, но я потерял, как это сделать. может кто-то указать мне в правильном направлении. Еще раз спасибо, Я сделал поиск, но я не смог найти решение для такого рода вопроса

ответ

0

Переименование файлов:

import os 

os.rename("filename.jpg","newname.jpg") 

Если вы хотите прочитать из списка и переименовать

with open("listname") as f: 
    for line in f: 
     os.rename(line,"newname.jpg") 
+0

Evus, извините, я не уверен, что понимаю. Скажу, например, я сохранил таблицу Excel с двумя столбцами. номер SKU, а второй - имя изображения. И у меня есть все мои изображения в одной папке «Изображения продукта». Я не хочу переименовывать список, я хочу переименовать изображения, чтобы соответствовать SKU. – Willies

+0

Чтобы упростить это, вам нужно сохранить этот excel как csv (или текст). Таким образом, он станет форматом «number», «filename» \ n. Затем вам нужно прочитать этот список по строкам. Сначала вы читаете имя изображения и разбираете его из csv-файла. Затем вам нужно разделить номер SKU на той же строке. Тогда просто os.rename – Evus

+0

Хорошо, я признаю, что я все еще потерян, я не использовал python через некоторое время, поэтому мне нужно переучиться, спасибо Evus, может быть, какой-то сон и свежие глаза утром помогут мне понять. – Willies

0
import os 
import csv 
keys{} 
with open('product_image.csv',rU) as csvfile: 
     reader = csv.reader(csvfile, delimiter = ',') 
     for rowDict in reader: 
       keys[ rowDict[0] ] = rowDict[1] 
       print (rowDict) 
for fileName in (os.listdir('.') & keys.keys()): 
    try: 
     os.rename(fileName, keys[fileName]) 
    except: 
     print('image was not renamed') 

Для тех из вас, кто походит на меня и все еще пытается узнать, что все делает, в электронной таблице: первый столбец - текущее имя изображение второго столбца - это имя, которое вы хотите изменить. сохранен как csv с именем product_image.csv. сценарий будет использовать список csv для изменения имен в файле. Одно замечание об ошибке, которое я обнаружил, заключается в том, что по какой-то причине первый файл в списке не будет переименован и будет удален. Я не беру на себя ответственность за сценарий, который я его очистил, и обновил его для работы с 3.4.

Смежные вопросы