Windows上的python paramiko sftp返回';FileNotFound[WinError2]和#x27;尝试使用sftp.put(localpath、remotepath)时

Windows上的python paramiko sftp返回';FileNotFound[WinError2]和#x27;尝试使用sftp.put(localpath、remotepath)时,python,sftp,filenotfoundexception,paramiko,pysftp,Python,Sftp,Filenotfoundexception,Paramiko,Pysftp,我正在尝试使用Python3.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(loca

我正在尝试使用Python3.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'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
s、 put(本地路径、远程路径)
文件“C:\Python33\lib\site packages\pysftp.py”,第349行,输入
确认=确认)
文件“C:\Python33\lib\site packages\paramiko-1.14.0-py3.3.egg\paramiko\sftp_client.py”,第585行,输入
file\u size=os.stat(localpath).st\u size
FileNotFoundError:[WinError 2]系统找不到指定的文件:“C://py.txt”
我尝试了不同的localpath前缀,比如“C:\py.txt”,但得到了相同的结果


提前感谢

Python使用反斜杠引用字符,如
\n
=换行符和
\t
=制表符;因此,
\\
=一条斜线

使用
r
前缀生成原始字符串文字:

localpath = r"C:\\py.txt"

我发现了问题所在。问题在于文件位置,因为它的名称是“py.txt”,但我的windows没有显示文件扩展名,所以实际的文件名是py.txt.txt

C:\py.txt
应该可以工作。你确定你的C:\目录中有一个文件
py.txt
吗?是的,我已经仔细检查过了我是否已经尝试过了,我仍然收到相同的错误FileNotFoundError:[WinError 2]系统找不到指定的文件:'C:\\\\py.txt'哦,对不起:试试
localpath=r“py.txt”
--没有
C:
驱动器前缀。这就是为什么我之前问您是否有名为
py.txt的文件(
)在您的情况下,文件名是
py.txt.txt
不要忘记接受您的答案。