连接本地网络中的另一台计算机

时间:2019-03-25 11:53:15

标签: python windows subprocess local

我正在尝试使用CMD.exe中的此命令通过python(子进程模块)连接本地网络中的另一台计算机

  • net use \\\\ip\C$ password /user:username
  • copy D:\file.txt \\ip\C$

然后在python中如下所示。 但是当我尝试第二个命令时,我得到:

  

“ FileNotFoundError:[WinError 2]”

您遇到过同样的问题吗? 有什么办法可以解决?

import subprocess as sp

code = sp.call(r'net use \\<ip>\C$ <pass> /user:<username>')
print(code)
sp.call(r'copy D:\file.txt \\<ip>\C$')

2 个答案:

答案 0 :(得分:1)

问题在于copy是内置的,而不是Windows中的真实命令。

这些Windows消息很糟糕,但是"FileNotFoundError: [WinError 2]"并不意味着无法访问源文件和目标文件(如果copy失败,您将获得带有显式文件的正常Windows消息名称)。

在这里,这意味着命令无法访问。

因此,您需要在子流程调用中添加shell=True才能访问内置函数。

但是不要那样做(安全性问题,不可移植性),而应使用shutil.copy

此外,在您的第一个命令中使用check_call而不是call,好像net use失败了,其余的也都会失败。最好早日失败。

总结起来,这就是我要做的:

import shutil
import subprocess as sp
sp.check_call(['net','use',r'\\<ip>\C$','password','/user:<username>'])
shutil.copy(r'D:\file.txt,r'\\<ip>\C$')

答案 1 :(得分:-1)

您需要确保您有权添加文件。 纠正共享目录的权限后,我已经成功进行了测试。