2013-07-02 73 views
0

我在UNIX服務器上運行python腳本。我的目標是從UNIX服務器獲取文件並將其放入Windows機器。Python從UNIX到Windows的FTP

#!/usr/bin/python 
import ftplib 
filename = "filename" 
ftp = ftplib.FTP("xx.xxx.xxx.xxx") 
ftp.login("uid", "psw") 
ftp.cwd("/my/location") 
print filename 
ftp.retrbinary('RETR %s' % filename, open(filename, 'w').write) 

我的代碼目前只需要文件從一個文件夾在UNIX("/my/location"),並把它的文件夾中,從那裏我運行的代碼。我怎樣才能把文件放在Windows桌面上?

回答

1

你應該import os然後使用os.chdir(r"\where\the\file\should\go")第一:

#!/usr/bin/python 
import ftplib 
import os 
filename = "filename" 
ftp = ftplib.FTP("xx.xxx.xxx.xxx") 
ftp.login("uid", "psw") 
ftp.cwd("/my/location") 
os.chdir(r"c:\somewhere") 
print filename 
ftp.retrbinary('RETR %s' % filename, open(filename, 'w').write) 

當Windows將桌面的文件取決於您正在運行的Windows,你還沒有告訴我們的版本 - 所以我就給你通用的指示。我相信你知道如何在你的Windows版本中爲Windows桌面找到正確的文件夾。

+0

配合我在Unix文件所在的位置執行python腳本。我需要將這些文件發送到Windows(名稱:MyABC)框。當我運行代碼時,出現以下錯誤:OSError:[Errno 2] No such file or directory:'\\\\ MyComp \\ c $ \\我的\\ LOcation'',因爲這個位置在windows和操作系統命令在這種情況下檢查Unix – misguided

+0

不完全是我正在尋找。但答案是有幫助的,因爲它幫助我瞭解更多。因此接受爲正確答案。 – misguided

+0

對不起,我誤解了這個問題,並認爲你在Windows端運行腳本,因爲否則'ftp.cwd(「/ my/location」)是完全錯誤的 - 就像你現在發現的那樣。基本上,使用'ftp.cwd()'來改變遠端的工作目錄,並使用'os.chdir()'來改變本地工作目錄。所以你可以使用'ftp.cwd(r「C:\ Windows \ Desktop」)(或者你的Windows桌面實際所在的位置 - 替換爲*特定*版本的適當路徑)。 – rmunn