Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 迭代文件夹树,将xmp数据添加到文件夹中的文件,然后移动_Python_Regex_Image_Jpeg_Listdir - Fatal编程技术网

Python 迭代文件夹树,将xmp数据添加到文件夹中的文件,然后移动

Python 迭代文件夹树,将xmp数据添加到文件夹中的文件,然后移动,python,regex,image,jpeg,listdir,Python,Regex,Image,Jpeg,Listdir,我试图在一个文件夹上运行python脚本,该文件夹将xmp数据嵌入到图像中,修改文件名regex,然后移动文件 它可以正常工作,直到你在目录中放置另一个文件夹,我希望能够查看目录内部,并对其中的图像执行相同的操作 for fileName in os.listdir(xmpDir): if not fileName.startswith('.'): print (fileName) pid = re.findall(r'(_ID\d+_)', fileName)

我试图在一个文件夹上运行python脚本,该文件夹将xmp数据嵌入到图像中,修改文件名regex,然后移动文件

它可以正常工作,直到你在目录中放置另一个文件夹,我希望能够查看目录内部,并对其中的图像执行相同的操作

for fileName in os.listdir(xmpDir):
  if not fileName.startswith('.'):  
    print (fileName)
    pid = re.findall(r'(_ID\d+_)', fileName)                  
    pid2 = str(pid)                                           
    bid = re.sub(r'\D', '', pid2)                              
    bid2 = int(bid)                                            
    newFileName = re.sub(r'(_ID\d+_)', '', fileName) 

    xmpfile = XMPFiles( file_path=fileName, open_forupdate=True )
    xmp = xmpfile.get_xmp()
    xmp.set_property(consts.XMP_NS_DC, u'ID', bid )
    xmpfile.put_xmp(xmp)
    xmpfile.close_file()
    shutil.move(xmpDir + fileName, newPath1 + newFileName)
    finder_colors.set(newPath1 + newFileName, 'purple')
我尝试过os walk,但它给了我一个错误,我知道它正在尝试在文件夹中查找正则表达式

`DIR
|
+--- [subdir]
|     |
|     +--- image1.jpg
|     +--- image2.jpg
|
+--- [subdir]
|     |
|     +--- image3.jpg
|     +--- image4.jpg
+--- image5.jpg
+--- image6.jpg`
搬到

`new dir with xmp
|
+--- [subdir]
|     |
|     +--- image1.jpg
|     +--- image2.jpg
|
+--- [subdir]
|     |
|     +--- image3.jpg
|     +--- image4.jpg
+--- image5.jpg
+--- image6.jpg`
我遇到了一点麻烦,任何帮助都将不胜感激


谢谢

必须使函数递归:处理目录中的所有文件,对于找到的每个文件夹,使用该文件夹作为参数再次调用函数


您还必须调整移动函数中的路径,因为它们会随着每次函数调用而更改。

哪一行会引发错误?您能引用错误消息吗?文件“ID.py”,第16行,在bid2=int(bid)中#将简短的ID转换为整数ValueError:int()的无效文本,以10为基数:“”一旦遇到文件夹谢谢,当您将其分解时,它就有意义了。代码现在完全可以工作了。