如何使用文件路径变量保存图像文件?

2024-09-29 17:20:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个变量myfile

>>> print(myfile)
/Users/mnewman/pyweb/py.jpg

我尝试在这里使用它,但它不起作用。在该位置不保存任何图像:

>>> os.popen("imagesnap -d 'HD Webcam C615 #2' myfile").read()
'Capturing image from device "<AVCaptureDALDevice: 0x7fc618d2f910 [HD Webcam C615 #2][0x14220000046d082c]>"...'

但这是可行的:

>>> os.popen("imagesnap -d 'HD Webcam C615 #2' /Users/mnewman/pyweb/py.jpg").read()
'Capturing image from device "<AVCaptureDALDevice: 0x7ffe7b5300e0 [HD Webcam C615 #2][0x14220000046d082c]>"...'

我应该如何使用文件路径变量


Tags: pyimagereadosmyfileusersjpgpopen
3条回答

第一个示例不起作用,因为您使用的是文本文件名myfile

如果您使用的是Python3.6或更高版本(您应该这样做),那么您可以使用F-strings,这是一种将变量值集成到字符串中的方便方法

试试这个:

os.popen(f"imagesnap -d 'HD Webcam C615 #2' {myfile}").read()

如果要将其添加到字符串中,必须执行string concatenation。像这样:

>>> os.popen("imagesnap -d 'HD Webcam C615 #2' "+myfile).read()
'Capturing image from device "<AVCaptureDALDevice: 0x7fc618d2f910 [HD Webcam C615 #2][0x14220000046d082c]>"...'

注意+(加上)?这把绳子放在一起,使它们成为一体。之前,您知道单词myfile是字符串中的一个单词,而不是附加到字符串的字符串

如果这回答了您的问题,请单击左侧的灰色复选标记,将此答案视为正确答案

字符串中的myfile只是字符,与该名称的任何变量无关

您应该使用subprocess而不是os.popen,并使用参数列表:

process = subprocess.Popen(["imagesnap", "-d", "HD Webcam C615 #2", myfile], stdout=subprocess.PIPE)
output = process.stdout.read()
process.wait()

相关问题 更多 >

    热门问题