【发布时间】:2019-11-14 12:30:09
【问题描述】:
我的台式计算机运行的是 Linux Mint 19.1。另一台计算机正在运行 Linux Mint 18.3。两台计算机都运行 Samba。我正在尝试让我的桌面 python 代码检查另一台计算机上的文件。在 Caja 文件管理器中,它显示路径为“smb://lenovo2/kwpvr/”。我可以在 Caja 中复制、删除或重命名文件。
之前有人问过这个问题,但答案只针对其他操作系统 (Windows)。 os.path.isfile() returns false for file on network drive
#!/usr/bin/python3
import os
print(os.path.isfile("smb://lenovo2/kwpvr/kwpvr3.db")) # False
print (os.path.isfile("//lenovo2/kwpvr/kwpvr3.db")) # False
print (os.path.isfile("smb:\\lenovo2\kwpvr\kwpvr3.db")) # False
print (os.path.isfile("\\lenovo2\kwpvr\kwpvr3.db")) # False
print (os.path.exists("smb://lenovo2/kwpvr/kwpvr3.db")) # False
print (os.path.exists("//lenovo2/kwpvr/kwpvr3.db")) # False
print (os.path.exists("smb:\\lenovo2\kwpvr\kwpvr3.db")) # False
print (os.path.exists("\\lenovo2\kwpvr\kwpvr3.db")) # False
os.path.exists() 对于我能想到的文件名的任何排列,总是返回 False。
【问题讨论】:
-
对于反斜杠不要忘记转义它们!例如。
"\\\\lenovo2\\kwpvr\\kwpvr3.db" -
去过那里,做到了。同样的结果(我没有得到一件 T 恤)。
标签: python linux network-programming smb file-exists