【问题标题】:Mapping a network drive to a letter in Python 2.7.3在 Python 2.7.3 中将网络驱动器映射到一个字母
【发布时间】:2012-08-28 17:04:54
【问题描述】:

到目前为止找不到任何有用的答案。 我必须使用 Python 2.7.3 将文件从 Linux 机器复制到 Windows 共享驱动器/Samba 共享(用户名和密码保护)

如何将网络驱动器映射到 Python 中的字母?

【问题讨论】:

  • 为什么需要将网络驱动器映射到一个字母?为什么不直接使用 UNC 路径?
  • 你的意思是windows机器上的网络共享当前没有设置,你想通过python创建一个新的网络驱动器?是否必须创建共享才能复制文件?你可以使用一个库来复制你想要的文件吗?
  • 在 Windows 上,您可以使用net 命令从命令行创建驱动器,例如net use m: \\financial\letters\mike -- 这样您就可以使用os.system() 函数或subprocess 模块执行类似的操作.
  • UNC 路径不起作用。是的,应该只复制文件。我可以将文件从一个文件夹复制到另一个文件夹,但不能复制到网络共享。为此,我使用“shutil.copyfile”。你知道网络共享的用户名和密码应该按什么顺序输入吗?
  • 命令语法here 的描述显示了如何将用户名密码 作为参数传递给net use 命令。

标签: python networking share drive


【解决方案1】:

这里是如何使用 samba ...读取文件并保存它

如果它很大,按行读取它,而不是一次...

Using pysmbc to read files over samba

如果你真的,真的想要脚本来写信,使用上面的解决方案和net use,或者win32或windll,其中一个肯定会有直接的东西,但对于windows,总是很难找到一个使用脚本的方法,所以最简单的方法就是复制文件而不映射它...

享受

【讨论】:

  • linux机器和网络共享都在同一个网络中。该文件应自动复制,而不是手动复制。怎么可能通过python向机器“解释”,网络共享是一个外部驱动器?
  • 所以linux机器是samba服务器,你想从windows连接到它并复制一些文件,但我仍然不明白的一件事是你为什么需要使用一些外部驱动器,只需从客户端运行脚本,脚本将处理 samba 层,然后从该脚本将文件保存到本地磁盘,对吗?试着给我更多关于你想要达到的目标的信息
  • 没有。 Linux机器是一个连接到网络的阅读器设备。该文件在此设备上,应复制到受密码保护的网络共享。如何在 python 中实现它?我试过了,它成功了: source_path=r"/Folder A, dest_path=r"/Folder B, file_name="aaa", shutil.copyfile(os.path.join(source_path, file_name), os.path.join(目标路径,文件名))。但是当我使用 dest_path=r"\\Network Name\Folder C 之类的东西时,无法复制该文件。
  • 好吧,所以你需要像这样访问samba,linux客户端,windows是共享具有写权限的文件夹,所以在linux上你需要挂载windows共享,这取决于你的发行版,你需要要安装 smbfs 或 cifs,然后像这样挂载它 'mount -t cifs -o username=user,password=pass \\ip_addr_of_shared\dir \mnt\local\folder' 你需要先在 linux 机器上挂载文件,然后使用常规副本,自动挂载网络驱动器,在 /etc/fstab 中添加一行,但这是特定于发行版的,如果你只需要使用 python
  • 如果你只需要python,python需要处理samba协议,所以使用smbc,但是没有太多可用的文档,所以最好的方法还是确保驱动安装在linux上,您需要调用'mount'然后解析它以查找它是否已安装,并通过调用外部操作系统命令的subprocess.call如上所述调用mount,或使用如上所述的pysmbc库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多