我在本地计算机上有一个批处理脚本,它在Windows网络共享上调用Python脚本,应该在那里写一个文件。如果我在没有批处理文件的情况下运行Python脚本,它会成功运行。如果我运行批处理文件,我会收到此错误:
Traceback (most recent call last):
File "python_script.py", line 25 in <module>
IOError: [Errno 13] Permission denied: 'outfile.txt'
Python脚本与&#34; outfile.txt&#34;位于同一目录中。
以下是Python脚本中的代码:
outfile = open("outfile.txt", "w")
我也尝试了一个绝对路径,但是我收到错误,找不到&#34;文件&#34;:
outfile = open("\\server\folder\subfolder\outfile.txt", "w")
我不认为这是一个权限问题,因为如果我只是手动运行python脚本&#34;&#34;以同一用户身份登录,它将outfile写入网络共享。使用批处理文件我错过了什么?
答案 0 :(得分:3)
当你“调用”python脚本时,实际上是从当前目录执行它。由于我不认为您可以在没有映射的情况下cd
到网络共享,这可能会导致权限问题。
绝对路径可以工作,但您只需要正确指定路径即可。在python中,反斜杠是一个转义字符,因此您要么必须转义反斜杠或使用正斜杠:
outfile = open("//server/folder/subfolder/outfile.txt", "w")
请参阅Using Python, how can I access a shared folder on windows network?