Проблема в том, что 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$')