使用Python从Linux访问Windows共享文件夹

时间:2019-06-14 14:23:53

标签: python python-3.x shared-directory

我在Windows中创建了一个共享文件夹(可以访问所有人)。在C:\sharedfolder上,因此我可以通过以下方式访问它:

\\mylocalnetworkip\sharedfolder

现在,我希望Python脚本在另一台计算机上写东西。

如果我在Windows上运行此简单脚本(从我的机器上,在Windows下使用Python)运行,则该脚本可以工作。它创建文件并写入内容。

file = open(r'\\mylocalnetworkip\sharedfolder\tester.dat', 'w')
file.write('whatever')
file.close()

但是,如果我在Linux中运行相同的脚本(从另一台计算机上运行,​​但仍在我的本地网络上,这意味着如果我ping通IP可以正常工作),那么它将无法正常工作。

使用它不起作用我的意思是说它不会失败,奇怪的是它在同一路径下创建了一个文件名,整个文件名

root@mc:/tmp# python tester.py  <-- the script with the code above
root@mc:/tmp# ls
\\mylocalnetworkip\sharedfolder\tester.dat  tester.py
root@mc:/tmp# cat \\mylocalnetworkip\sharedfolder\tester.dat
whatever
root@mc:/tmp#

有人可以帮我一下,告诉我如何使其在Linux中工作吗?谢谢!

PS:我也使用'\\\\mylocalnetworkip\\sharedfolder\\tester.dat'进行了运气测试。

1 个答案:

答案 0 :(得分:0)

这里有两个问题。

安装

Linux无法处理类似\\mylocalnetworkip\sharedfolder\tester.dat这样的路径。

在Linux系统上,首先必须“装载”共享文件夹,然后才能使用它。在mountig(取决于安装点)之后,路径可能像这样/mnt/mylocalnetworkip/sharedfolder/tester.dat

在Linux上挂载有多种方法。例如签出https://unix.stackexchange.com/q/18925/136851https://www.putorius.net/mount-windows-share-linux.html

路径分隔符

Windows和Linux使用不同的路径分隔符。 Python中的一个很好的解决方案是创建这样的路径。

import os
os.path.join('/', 'mnt', 'mylocalnetworkip', 'sharedfolder', 'tester.dat')

结果是

/mnt/mylocalnetworkip/sharedfolder/tester.dat

请注意第一个/,它指示linux文件系统的根。