尝试关闭窗口的Python中的权限被拒绝错误

时间:2019-06-26 05:18:25

标签: python textedit

我正在尝试使用Python关闭打开的TextEdit窗口。我可以使用以下命令打开窗口:

import subprocess
p = subprocess.call(['open', 'allen_grammar.txt'])

但是当我尝试使用关闭窗口

p = subprocess.Popen( 'allen_grammar.txt')
p.terminate()

我收到一个权限被拒绝的错误:

p = subprocess.Popen( 'allen_grammar.txt')
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 707, in __init__
    restore_signals, start_new_session)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/subprocess.py", line 1326, in _execute_child
    raise child_exception_type(errno_num, err_msg)
PermissionError: [Errno 13] Permission denied

我对该文件拥有完全权限,并且是计算机的管理员。

2 个答案:

答案 0 :(得分:0)

对Popen的调用应如下:

return view('coin.news', compact('chart'));

由于我没有TextEdit,所以使用了记事本,您可以在调用 p = subprocess.Popen(['notepad.exe','allen_grammar.txt']) 的过程中替换所需的任何文本编辑器,'notepad.exe'之后应该可以正常使用

答案 1 :(得分:0)

不是真正的答案,而是成功的解决方法。我必须使用Applescript,然后从Python调用Applescript就像这样:

os.system(f'''/usr/bin/osascript -e 'tell app "TextEdit" to close (every window whose name is "allen_grammar.txt")' ''')