我是Python的初学者,所以这个问题可能很愚蠢,但不幸的是我无法自己解决这个问题。
使用以下脚本我想创建一个黑色图像并将其保存在以下路径中:C://Users/User/Desktop/black.png
def create_file(x=1000,y=10):
img = Image.new('RGB', (x,y), "black") #creates a new black image
img.save('C://Users/User/Desktop/black.png')`
现在的重点是我想假装路径,文件名和文件类型的功能如下:
create_image(x=1000,y=10,path=C://Users/bsimon/Desktop/,filename=black,filetype=png)`
斗争开始了:
我找不到确切的语法如何将路径(filename,filetyp)传递给img.save函数
我使用与png不同的filetyp导致错误。行img.save('C://Users/User/Desktop/black.png')
工作正常但是当我尝试使用img.save('C://Users/User/Desktop/black.bmp')
代替时,程序我运行脚本(Blender)崩溃或陷入无限循环中。
答案 0 :(得分:0)
我认为你在寻找的是:
def create_image(x=1000, y=10, path="C:/Users/bsimon/Desktop/",
filename="black", filetype="png"):
img = Image.new('RGB', (x,y), "black")
fullpath = os.path.join(path, filename + '.' + filetype)
img.save(fullpath)
然后你可以这样称呼它:
create_image(filename="empty")
传递你想要的任何参数(带有关键字),并且它将使用所有其他参数的默认值(就像你已经使用x
和y
的默认值一样)。 / p>
请注意,您始终需要在Python中使用字符串文字的引号。你不能只写filename=black
;这表示filename
的默认值是全局变量black
中的任何值(你可能没有,所以得到NameError
),而不是字符串"black"
。
接下来,要将基本文件名(如"black"
和扩展名"png"
)合并到一个完整的文件名中,Python没有这样做的功能,所以你必须手动完成,比如filename + '.' + filetype
。但是要结合像C:/Users/bsimon/Desktop/
这样的目录名和像"black.png"
这样的文件名,Python 确实有一个函数os.path.join
- 你应该使用它,因为它有一些棘手的边缘情况,否则你可能会出错。
你的问题#2似乎与你的问题#1完全无关,所以我不会在这里回答它;为此创建一个单独的问题。