我没有得到期望的输出。我必须将“itemnumber”列与“imagename”列合并并保存到该csv中的另一列“image”。它还会在image文件夹中创建一个重复的图像“B001_B001.jpg”。在
我的意见是:
ItemNumber UPC Keyword ImageName ImageWChain Description
0 B001 123 XYZ B001 B001 Test1
1 B002 456 GDH B002 B002 Test2
2 B003 789 GFR B003 B003 Test3
我的预期产出是:
^{pr2}$到目前为止,我得到的是:
import csv
import os
from os.path import splitext # splits name & extension from a file
import shutil # making a duplicate copy of a file
import logging
class Image:
def image_fix(self):
#open and read csv
with open('rosary.csv') as csvfile:
#create list for sku, old_imagename_column_1, old_imagename_column_1
#and renamed new_imagename
keyList = [] #for ItemNumber
itemList = [] #for ImageName
itemList1 = [] #for ImageWChain
renamedList = [] #for Renamed NEW_ImageName
spamreader = csv.reader(csvfile, delimiter=",")
#storing all the columns into list
for row in spamreader:
keyList.append(row[0])
itemList.append(row[3])
itemList1.append(row[4])
renamedList.append(row[6])
# processing for ImageName
for item in enumerate(itemList):
oldFileName = name
newFileName = '{}_{}{}'.format(name, keyList[item[0]])
# check if the image file existsin image folder for ImageName column
if (os.path.isfile(oldFileName)):
shutil.copy2(oldFileName, newFileName) #make a duplicate image of every itemname
renamedList[item[0]] = '{}_{}{}'.format(oldFileName, keyList[item[0]])
# write the final output in new csv
with open('rosary.csv','wb') as my_csv:
csvWriter = csv.writer(my_csv,delimiter=',')
for row in zip(keyList, itemList, itemList1, renamedList):
# printing row in order
print(row[0] + '\t' + '\t' + row[3] + '\t' + '\t' +
row[4] + '\t' + '\t' + row[6])
csvWriter.writerow(row)
if __name__=="__main__":
obj = Image()
obj.image_fix()
如果你能用熊猫:
要制作新的图像副本:
^{pr2}$相关问题 更多 >
编程相关推荐