【发布时间】:2017-10-12 00:26:41
【问题描述】:
我使用 GIMP 进行一些批量编辑,其中一部分是使用从原始图像“文件名”获取的文件名导出绘画,并使用以下代码:
pdb.file_png_save_defaults(ima, drawable, fullpath, filename)
此刻,我有
fullpath=filename
因此它将图像保存到与源相同的文件夹中,并且文件名和完整路径相同。
我要做的是把它放到这个文件夹的子目录中,我们称之为"subfolder"。但如果我尝试:
fullpath = '\subfolder\'+filename
很明显,我遇到了一个错误,因为我使用 Python(或任何编程语言)已经有半个小时了,我几乎不知道自己在做什么。有人知道如何实现将图像导出到子文件夹吗?
更新:
现在是这个样子
sourcename = pdb.gimp_image_get_filename(ima)
basedir = os.path.dirname(sourcename)
if os.path.isdir(os.path.join(basedir,'Subfolder')) is False:
os.makedirs(os.path.join(basedir,'Subfolder'))
fullpath = os.path.join(basedir,'Subfolder',filename)
...而且效果很好。几乎。现在我面临着 basedir 中变音符号的问题。当 basedir 包含类似“C:\Úklid\”的内容时,当代码在其中创建子目录时,我会收到“没有这样的文件或目录”错误。在我将源文件夹重命名为“C:\Uklid\”后,它可以轻松工作。但我确实需要它与 Windows 操作系统中有效的每条路径一起工作。有人可以帮我吗?
更新 2:
看起来 unicode() 成功了:
sourcename = pdb.gimp_image_get_filename(ima)
basedir = os.path.dirname(sourcename)
if os.path.isdir(os.path.join(basedir,'Subfolder')) is False:
os.makedirs(unicode(os.path.join(basedir,'Subfolder')))
fullpath = os.path.join(basedir,'Subfolder',filename)
【问题讨论】:
-
你得到什么错误?
-
>>> fullpath = '\subfolder\'+filename File "", line 1 fullpath = '\subfolder\'+filename ^ SyntaxError: EOL while scanning string literal
-
您需要完整路径并且需要正斜杠,例如:
fullpath = 'basedir/' + 'subfolder/' + filename -
所以我不能只保存到原始文件的子文件夹,我需要硬编码整个路径?
-
filename是完整路径吗?如果是这样,您可以这样做:import os; basedir= os.path.dirname(filename); fullpath = os.path.join(basedir,'subfolder',filename)
标签: python export diacritics subdirectory gimp