连接本地网络中的另一台计算机
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
添加到您的子进程调用中才能访问内置函数。
但不要那样做(安全问题、不可移植性),请改用 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$')
我正在尝试使用 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
添加到您的子进程调用中才能访问内置函数。
但不要那样做(安全问题、不可移植性),请改用 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$')