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

Python 如何使用文件路径变量保存图像文件?,python,Python,我有一个变量myfile: >>> print(myfile) /Users/mnewman/pyweb/py.jpg 我尝试在这里使用它,但它不起作用。在该位置不保存任何图像: >>> os.popen("imagesnap -d 'HD Webcam C615 #2' myfile").read() 'Capturing image from device "<AVCaptureDALDevice: 0x7fc618d

我有一个变量
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网络摄像头C615#2'myfile”).read() “正在从设备“”捕获图像…” 但这是可行的:

>>> 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]>"...'
os.popen(“imagesnap-d'HD网络摄像头C615#2'/Users/mnewman/pyweb/py.jpg”).read() “正在从设备“”捕获图像…”
如何使用file path变量?

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

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

试试这个:

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

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

os.popen(“imagesnap-d'HD网络摄像头C615#2'”+myfile).read() “正在从设备“”捕获图像…” 请注意
+
(加上)?这把绳子放在一起,使它们成为一体。以前,您知道单词
myfile
是字符串中的一个单词,而不是附加到字符串的字符串


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

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

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

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

你的意思是:os.popen(f“imagesnap-d'HD网络摄像头C615#2'{myfile}”).read()?另一方面,在这行中:ftpr=ftp.storbinary(f'STOR{os.path.split(myfile)[1]},open myfile,'rb'))-我只使用变量名来引用文件路径,但它在另一行代码中不起作用。为什么?谢谢。我不太了解F字符串或如何使用它们。现在我了解了。我尝试了这个,但出现了以下错误:NameError:
名称“subprocess”未定义
。我不知道这意味着什么,也不知道如何修复它。如果需要的话导入其他内容,我无法知道这可能是什么。我复制了您的行(从os.popen开始),但出现了以下错误:
Device“HD Webcam C615#2/Users/mnewman/pyweb/py.jpg“未找到。
@Buadhai:您只需在字符串中的
'
字符后添加一个空格即可。字符串连接不关心添加空格,因此需要手动添加空格。新字符串将是:
“imagesnap-d'HD Webcam C615#2'”+myfile
,这很有效。非常感谢。请记住,我上周才开始学习Python,所以我仍然有点不确定事情是如何运作的;包括空间的意义。我最初只是复制并粘贴了你发布的内容,没有意识到丢失的空间会导致它失败。@Buadhai:不客气。我希望无论你在建什么,这次都能成功!现在我只是在努力学习。我的项目是用Python重写我的一个旧bash shell脚本。结果比我想象的要困难得多。