Ich bekomme nicht die gewünschte erwartete Ausgabe.Ich muss "itemnumber" Spalte mit "Bildname" Spalte und speichern Sie in eine andere Spalte "Bild" in diesem CSV. ZB B001_B001. Es erstellt auch ein Duplikat Bild "B001_B001.jpg" im Bildordner.concat zwei Spalten und speichern in einer neuen Spalte in einem csv
Meine Eingabe ist:
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
und meine erwartete Ausgabe ist:
ItemNumber UPC Keyword ImageName ImageWChain Description Image
0 B001 123 XYZ B001 B001 Test1 B001_B001
1 B002 456 GDH B002 B002 Test2 B002_B002
2 B003 789 GFR B003 B003 Test3 B003_B003
Dies ist, was ich bisher:
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()
was Problem Ihres Codes ist? – haifzhan
Ich erhalte keine erwartete Ausgabe wie im Bild. :( – sachit
was hast du bekommen, können Sie es in Ihre Frage? – haifzhan