![](/img/trans.png)
[英]How to connect with Python Sockets to another computer on the same network
[英]Connect another computer in local network
我正在尝试使用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$')
问题在于, copy
是内置的,而不是Windows中的实际命令。
这些Windows消息很糟糕,但是"FileNotFoundError: [WinError 2]"
并不意味着无法访问源文件和目标文件之一(如果copy
失败,您将获得带有显式文件名的普通Windows消息)。
在这里,这意味着该命令无法访问。
因此,您需要在子流程调用中添加shell=True
才能访问内置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$')
您需要确保您有权添加文件。 更正共享目录的权限后,我已成功进行了测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.