我尝试使用Python 3.3将简单文件从本地主机(Windows)上传到远程计算机(UNIX)
以下是代码:
import os
import Crypto
import paramiko
import pysftp
localpath = "C:\\py.txt"
remotepath = "/tmp/py.txt"
s = pysftp.Connection(host='10.1.1.1', username='user', password='pass')
s.put(localpath, remotepath)
返回的错误是:
Traceback (most recent call last):
File "<pyshell#10>", line 1, in <module>
s.put(localpath, remotepath)
File "C:\Python33\lib\site-packages\pysftp.py", line 349, in put
confirm=confirm)
File "C:\Python33\lib\site-packages\paramiko-1.14.0- py3.3.egg\paramiko\sftp_client.py", line 585, in put
file_size = os.stat(localpath).st_size
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'C://py.txt'
我为localpath尝试了不同的前缀,例如&#39; C:\ py.txt&#39;但我得到了相同的结果。
提前致谢
答案 0 :(得分:0)
Python使用反斜杠引用字符,例如\n
=换行符和\t
= tab;因此\\\\
=一个斜线。
使用r
前缀创建原始字符串文字:
localpath = r"C:\\py.txt"
答案 1 :(得分:0)
我发现了问题。问题出在文件位置,因为它的名字是'py.txt',但我的窗口没有显示文件扩展名,所以实际的文件名是py.txt.txt