我有一个Python程序,正在将其移植到Mac。我需要将一个保存的图像文件加载到剪贴板中,以便可以使用cmd + v将其粘贴到文档中。
这个帖子是我所需内容最接近的,但解决方案不起作用,因为我的osascript文件路径未知。 它是由用户在Python中定义的变量,并且我正在努力理解必须从Python传递变量到osascript所需的语法。
以下代码不起作用:
结果为:"语法错误:期待“,”但找到“"”。 (-2741)"。
以下内容:
现在返回:"NameError:名称 'inpath'未定义"。
编辑2:完成时没有错误,但无法加载到剪贴板。
这段代码没有出现错误,打印了正确的路径,但是没有将文件添加到剪贴板中。
这个帖子是我所需内容最接近的,但解决方案不起作用,因为我的osascript文件路径未知。 它是由用户在Python中定义的变量,并且我正在努力理解必须从Python传递变量到osascript所需的语法。
以下代码不起作用:
import subprocess
def imagepath():
f=open('config.txt')
line=f.readlines()
inpath = (line[2])
print(inpath)
return(inpath)
imagepath()
subprocess.run(["osascript", "-e", 'set the clipboard to (read (POSIX file "+ str(inpath) + /tc.jpg") as JPEG picture)'])
inpath 打印的是:/Users/admin/Desktop/PROGRAMMING,这是正确的路径,但它导致了“执行错误:无法将文件":+ str(inpath) + :tc.jpg”转换为文件类型。 (-1700) "。
也不会出现这种情况:
import subprocess
def imagepath():
f=open('config.txt')
line=f.readlines()
inpath = (line[2])
print(inpath)
return(inpath)
imagepath()
subprocess.run(["osascript", "-e", 'set the clipboard to (read (POSIX file """+ str(inpath) + /tc.jpg""") as JPEG picture)'])
结果为:"语法错误:期待“,”但找到“"”。 (-2741)"。
以下内容:
import subprocess
def imagepath(): # check line 1 of config file (screencap name)
f=open('config.txt')
line=f.readlines()
inpath = (line[2]) # note: confusing. 0=line 1, 1=line2 etc.
print(inpath)
return(inpath)
imagepath()
subprocess.run(["osascript", "-e", 'set the clipboard to (read (POSIX file ''' + str(inpath) + '''/tc.jpg") as JPEG picture)'])
结果为:"SyntaxError: 扫描三引号字符串文字时遇到 EOF"
非常感谢任何帮助!
编辑:下面是更新的代码:
def imagepath(): # check line 1 of config file (screencap name)
f=open('config.txt')
line=f.readlines()
inpath = line[2].strip('\n')
print(inpath)
return(inpath)
imagepath()
subprocess.run(["osascript", "-e", "set the clipboard to (read (POSIX file \"" + inpath + "/tc.jpg\") as JPEG picture)" ])
现在返回:"NameError:名称 'inpath'未定义"。
编辑2:完成时没有错误,但无法加载到剪贴板。
import subprocess
def imagepath(): # check line 1 of config file (screencap name)
f=open('config.txt')
line=f.readlines()
inpath = (line[2]).strip('\n')
print(inpath)
return(inpath)
subprocess.run(
["osascript", "-e", "set the clipboard to (read (POSIX file \"" + inpath + "/tc.jpg\") as JPEG picture)"])
imagepath()
这段代码没有出现错误,打印了正确的路径,但是没有将文件添加到剪贴板中。
inpath = imagepath()
- Mark Setchellreturn(inpath)
部分。 - Mark Setchell