python - 使用 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'
没有运气使用它进行了测试。
解决方案
这里有两个问题。
安装
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 文件系统的根目录。
推荐阅读
- c++ - 我如何处理 shared_ptr ++
- linux - 在 Linux 中部分展开 VCF bgz 文件
- java - 当我第一次在 IntelliJ IDEA 上运行颤振时出错
- c - 如何在 C 中使用 curl 并解析 JSON 响应
- javascript - 我正在尝试使用纯 JavaScript 在 AJAX 调用中添加授权标头。但给出错误
- python - 为什么我的 PySimpleGUI 在 Mac OS X 10.15.1 上崩溃,但在 Mac OS X 10.13 上运行良好
- java - Android按钮onClick更改活动导致应用程序在这些代码中崩溃
- json - json到案例类提取给出错误
- amazon-web-services - AWS IAM | 无法承担在同一“会话”上创建的角色 (InvalidInputException)
- java - 如何在 Java 8 中创建条件排序