我有以下通过java类调用的python脚本。它可以很好地使用本地文件名('D:tempTest.pdf'),但当文件名为serverAf$dirTest.pdf时,它总是返回false。它运行在tomcat服务器上(具有Admin权限),并且serverA驱动器f挂载在tomcat服务器机器上。你知道我可能漏掉了什么吗?
def checkFileExists(filename):
vFile = File(filename)
if (vFile == None):
return False
return vFile.exists()
因此,正如在对该问题的评论中所讨论的那样,在Python中访问Windows共享有点困难。因此,检查文件是否存在于Python无法理解但Windows工具可以理解的远程位置的一种hack方法是调用这些工具并解析它们的输出。
例如:import subprocess
def file_exists(path):
res = subprocess.check_output(['IF', 'EXIST', path, 'ECHO', "1"])
return res.strip() == '1'
用法:
path = r'\serverAf$dirTest.pdf'
print(file_exists(path))