使用pysftp将文件从SFTP服务器下载到本地计算机时出错

2024-05-23 20:47:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法从SFTP服务器复制文件。我得到了权限错误

我尝试过在os.mkdirs()函数中更改模式

sftp = pysftp.Connection(host = myhostname, username= myusername,  password= mypassword, port=22, cnopts=mycn`enter code here`opts)
os.makedirs('S:\\work\\Automation\\ML\\Procressed data\\FY20\\FW'+fweek+'\\output', exist_ok=True)

localpath = 'S:\\work\\Automation\\ML\\Procressed data\\FY20\\'+fweek+'\\output' 
englishpath ='dell.ccaprocessrepository/output_ts_2020'+fweek+'_English_EU.txt'
chinapath = 'repository/output_ts_2020'+fweek+'_CHT.txt'
japanpath = 'repository/output_ts_2020'+fweek+'_Japan.txt'
koreapath = 'repository/output_ts_2020'+fweek+'_Korea.txt'

sftp.get(remotepath= englishpath, localpath= localpath)
sftp.get(remotepath= chinapath, localpath= localpath)
sftp.get(remotepath= japanpath, localpath= localpath)
sftp.get(remotepath= koreapath, localpath= localpath)
PermissionError: [Errno 13] Permission denied: 'S:\\work\\Automation\\ML\\Procressed data\\FY20\\29\\output'

Tags: txtoutputdatagetrepositorymlworkautomation
1条回答
网友
1楼 · 发布于 2024-05-23 20:47:35

pysftp ^{} methodlocalpath参数是指向文件的路径,下载的内容应存储在该文件中

localpath中的output是一个文件夹,而不是文件

您需要在路径中附加一个文件名

englishlocalpath = localpath + '\\output_ts_2020'+fweek+'_English_EU.txt'
sftp.get(remotepath=englishpath, localpath=englishlocalpath)

或者,将本地工作目录更改为localpath,您可以省略localpath参数。pysftp将文件下载到工作目录,保留原始名称(取自remotepath参数):

os.chdir(localpath)

sftp.get(remotepath=englishpath)
sftp.get(remotepath=chinapath)
sftp.get(remotepath=japanpath)
sftp.get(remotepath=koreapath)

相关问题 更多 >