检查文件是否存在,并在没有 paramiko 的情况下使用 python 将其删除
Check if file exists and remove it with python on share without paramiko
我想检查某个文件 fake-file.txt
是否存在于共享文件夹 //123.456.7.890/Data/
中,如果存在,我想将其删除并写入一个新文件 real-file.txt
。我 不想 想使用 paramiko 模块来完成这项任务,并让它在 windows 机器上工作,就像这样:
filename = '//123.456.7.890/Data/fake-file.txt'
if os.exists(filename):
os.remove(filename)
#and so on
但是,此方法不适用于基于 unix 的计算机(在本例中为 CentOS)。我收到一个 IOError,指出该文件不存在。我不太熟悉基于 unix 的机器,所以参考可能有问题。我该如何解决这个问题?如果不清楚,请告诉我!
PS。该文件夹受密码保护,我可以从终端通过 ssh 访问它
这不是真正的 Python 问题。在 Linux 上,您可以通过将远程文件系统挂载到本地空目录(这可能需要您没有的权限)来访问远程文件系统,然后通过该目录(当时称为挂载点)访问它们。像
$ mkdir ./1234567890
$ mount -t cifs //123.456.7.890/Data -o username=username,password=password ./1234567890
如果成功,您在 Python 程序中使用的 linux 文件名将是 ./1234567890/fake-file.txt
。
某些 Linux 系统可能配置有自动挂载系统,以便特定的文件存储引用自动为您挂载。您需要与本地系统管理部门联系,以确定是否以及如何在本地实施。
PS 123.456.7.890 不是有效的 IP 地址,但我假设您选择隐藏您实际使用的真实有效 IP 地址。 123.45.67.89 是 "random" IP 地址或 192.168.22.33(随机私有 IP)的更好选择。
我想检查某个文件 fake-file.txt
是否存在于共享文件夹 //123.456.7.890/Data/
中,如果存在,我想将其删除并写入一个新文件 real-file.txt
。我 不想 想使用 paramiko 模块来完成这项任务,并让它在 windows 机器上工作,就像这样:
filename = '//123.456.7.890/Data/fake-file.txt'
if os.exists(filename):
os.remove(filename)
#and so on
但是,此方法不适用于基于 unix 的计算机(在本例中为 CentOS)。我收到一个 IOError,指出该文件不存在。我不太熟悉基于 unix 的机器,所以参考可能有问题。我该如何解决这个问题?如果不清楚,请告诉我!
PS。该文件夹受密码保护,我可以从终端通过 ssh 访问它
这不是真正的 Python 问题。在 Linux 上,您可以通过将远程文件系统挂载到本地空目录(这可能需要您没有的权限)来访问远程文件系统,然后通过该目录(当时称为挂载点)访问它们。像
$ mkdir ./1234567890
$ mount -t cifs //123.456.7.890/Data -o username=username,password=password ./1234567890
如果成功,您在 Python 程序中使用的 linux 文件名将是 ./1234567890/fake-file.txt
。
某些 Linux 系统可能配置有自动挂载系统,以便特定的文件存储引用自动为您挂载。您需要与本地系统管理部门联系,以确定是否以及如何在本地实施。
PS 123.456.7.890 不是有效的 IP 地址,但我假设您选择隐藏您实际使用的真实有效 IP 地址。 123.45.67.89 是 "random" IP 地址或 192.168.22.33(随机私有 IP)的更好选择。