我在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'
进行了运气测试。
答案 0 :(得分:0)
这里有两个问题。
Linux无法处理类似\\mylocalnetworkip\sharedfolder\tester.dat
这样的路径。
在Linux系统上,首先必须“装载”共享文件夹,然后才能使用它。在mountig(取决于安装点)之后,路径可能像这样/mnt/mylocalnetworkip/sharedfolder/tester.dat
。
在Linux上挂载有多种方法。例如签出https://unix.stackexchange.com/q/18925/136851或https://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文件系统的根。