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

Connect another computer in local network

我正在尝试使用 CMD.exe

中的命令通过 python(子进程模块)连接本地网络中的另一台计算机

然后在 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 添加到您的子进程调用中才能访问内置函数。

但不要那样做(安全问题、不可移植性),请改用 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$')