首页 > 解决方案 > 使用 Python 从 Linux 访问 windows 共享文件夹

问题描述

我在 Windows 中创建了一个共享文件夹(可以访问所有人)。on 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'没有运气使用它进行了测试。

标签: pythonpython-3.xshared-directory

解决方案


这里有两个问题。

安装

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 文件系统的根目录。


推荐阅读