Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从文本文件更改图像名称_Python_Excel_Image - Fatal编程技术网

Python 从文本文件更改图像名称

Python 从文本文件更改图像名称,python,excel,image,Python,Excel,Image,我知道有些python脚本可以更改文件名,但我有一个小问题 我正在尝试批量上传一些图片到雅虎商店,图片的名称必须与服务器的产品id相同,才能将图片链接到正确的产品。(我仍然无法理解为什么他们不在数据库中有一个字段,您可以列出您设置的名称,但无论如何) 我的所有产品(由我的供应商提供)的所有图像都在一个文件中,但名称类似于benj7007.jpg 我还有一个csv产品文件,其中列出了sku编号和图像名称。 当我将产品上传到雅虎商店时,我使用SKU号作为产品id。 我可以很容易地创建一个文本文件,列

我知道有些python脚本可以更改文件名,但我有一个小问题 我正在尝试批量上传一些图片到雅虎商店,图片的名称必须与服务器的产品id相同,才能将图片链接到正确的产品。(我仍然无法理解为什么他们不在数据库中有一个字段,您可以列出您设置的名称,但无论如何) 我的所有产品(由我的供应商提供)的所有图像都在一个文件中,但名称类似于benj7007.jpg 我还有一个csv产品文件,其中列出了sku编号和图像名称。 当我将产品上传到雅虎商店时,我使用SKU号作为产品id。 我可以很容易地创建一个文本文件,列出我正在上传的产品组的SKU和图像名称,并将其用于python读取 SKU编号700756图像benj7007.jpg

我需要更改所有图像的图像名称以匹配SKU,但我不知道如何做到这一点。 有人能给我指一下正确的方向吗。 再次感谢, 我确实搜索过,但找不到解决此类问题的方法

重命名文件:

import os

os.rename("filename.jpg","newname.jpg")
如果您想从列表中读取并重命名

with open("listname") as f:
    for line in f:
         os.rename(line,"newname.jpg")
对于那些像我一样仍在努力学习一切的人, 在电子表格中,第一列是图像的当前名称,第二列是要更改为的名称。保存为csv,名称为product_image.csv。 脚本将使用csv列表更改文件中的名称。
我发现的一个错误是,由于某种原因,列表中的第一个文件不会重命名,将被删除。我不认为我清理了脚本并将其更新为使用3.4

Evus,很抱歉,我不确定我是否理解,例如,我保存了一个excel电子表格,其中有两列,第一列是SKU编号,第二列是图像名称,我将所有图像放在一个文件夹“Product images”中我不想重命名列表,我想重命名图像以匹配SKU。要简化此过程,您需要将excel另存为csv(或文本)。因此,它将成为格式“编号”、“文件名”\n。然后你需要逐行阅读这个列表。首先读取图像名称,并从csv文件中解析它。然后您需要在同一行上解析SKU编号。那么就os.renameOkay吧,我承认我还是迷路了,我有一段时间没用python了,所以我需要重新学习,谢谢你,埃弗斯也许早上睡一觉和睁开眼睛会帮助我理解。我确实发现了一个类似的问题,可能会解决我的问题。这就是你所说的吗?我不知道你们为什么因为我问了一个问题而惩罚我。。。。毕竟这就是这个网站的目的。我还将提到,我已经使用了一些问题的例子,如我的,但我不能得到任何工作。主要是因为当我被问到这个问题时,我不知道使用的是什么版本的python。Evus再次感谢您的建议
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')