pythonftp上傳
(1)客戶端訪問伺服器端要有一個驗證功能
(2)可以有多個客戶端訪問伺服器端
(3)可以對重名文件重新上傳或下載
FTP(File Transfer Protocol,文件傳輸協議) 是 TCP/IP 協議組中的協議之一。FTP協議包括兩個組成部分,其一為FTP伺服器,其二為FTP客戶端。其中FTP伺服器用來存儲文件,用戶可以使用FTP客戶端通過FTP協議訪問位於FTP伺服器上的資源。在開發網站的時候,通常利用FTP協議把網頁或程序傳到Web伺服器上。它工作在TCP 模型的第四層, 即應用層, 使用 TCP 傳輸而不是 UDP, 客戶在和伺服器建立連接前要經過一個「三次握手」的過程, 保證客戶與伺服器之間的連接是可靠的, 而且是面向連接, 為數據傳輸提供可靠保證。
伺服器端
首先要實現對訪問客戶端的驗證,在本地建立一個資料庫文件,將客戶端的用戶名和密碼寫入到文件中。這樣每次訪問時都將用戶名和密碼和資料庫中存在的進行匹配,實現驗證功能。這里對密碼進行了MD5加密,保證了密碼不會輕易泄露。
⑵ python ftp上傳文件卡住也沒有報錯怎麼回事
時間過長也就會卡住,但是沒有什麼報錯;這個情況下只能sleep(10)是暫停多少秒,再次上傳
⑶ 有大神知道怎麼使用python 往ftp伺服器上連續上傳下載多張圖片嗎
例:下載、上傳文件
#coding:utf-8
fromftplibimportFTP
importtime
importtarfile
importos
#!/usr/bin/python
#-*-coding:utf-8-*-
fromftplibimportFTP
defftpconnect(host,username,password):
ftp=FTP()
#ftp.set_debuglevel(2)
ftp.connect(host,21)
ftp.login(username,password)
returnftp
#從ftp下載文件
defdownloadfile(ftp,remotepath,localpath):
bufsize=1024
fp=open(localpath,'wb')
ftp.retrbinary('RETR'+remotepath,fp.write,bufsize)
ftp.set_debuglevel(0)
fp.close()
#從本地上傳文件到ftp
defuploadfile(ftp,remotepath,localpath):
bufsize=1024
fp=open(localpath,'rb')
ftp.storbinary('STOR'+remotepath,fp,bufsize)
ftp.set_debuglevel(0)
fp.close()
if__name__=="__main__":
ftp=ftpconnect("113.105.139.xxx","ftp***","Guest***")
downloadfile(ftp,"Faint.mp4","C:/Users/Administrator/Desktop/test.mp4")
#調用本地播放器播放下載的視頻
os.system('start"C:.exe""C:/Users/Administrator/Desktop/test.mp4"')
uploadfile(ftp,"C:/Users/Administrator/Desktop/test.mp4","test.mp4")
ftp.quit()
⑷ 如何在Python中使用FTP
from ftplip import FTP # 首先要引入 ftplib 這個庫
# 接著,這是我自定義的幾個用於操作 ftp 的函數,def 後面跟的是自定義函數名,函數體內FTP 相關的語句和函數來自上面 import 那個包,你自己體會吧:
# 初始化 FTP 連接
def ftp_open(HOST,PORT,USERNAME,PASSWORD):
ftp=FTP()
ftp.set_debuglevel(2)
ftp.connect(host=HOST,port=PORT)
ftp.login(USERNAME,PASSWORD)
return ftp
# 關閉 FTP 連接
def ftp_close(ftp):
ftp.set_debuglevel(0)
ftp.quit()
# 文件上傳函數,filename 可以是windows 格式包含全路徑的文件
def ftp_up(ftp,filename):
#print(ftp.getwelcome())
#ftp.cwd('xxx/www')
file_handler=open(filename,'rb')
ftp.storbinary('STOR %s' % os.path.basename(filename),file_handler)
file_handler.close()
print('FTP up OK.')
# 文件下載函數,filename 可以是windows 格式包含全路徑的文件
def ftp_down(ftp,filename):
#print(ftp.getwelcome())
#ftp.cwd('xxx/www')
file_handler=open(filename,'wb')
ftp.retrbinary('RETR %s' % os.path.basename(filename),file_handler)
file_handler.close()
print('FTP down OK.')
⑸ python-2.7.13.tar.xz怎麼安裝
centons6.5系統中是已經安裝了python的,先查看版本是不是需要的
查看版本命令:python --version
安裝一些必要的包,防止後面需要重新安裝
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel
下載符合自己系統的安裝包(Python-2.7.13.tgz)
通過ftp工具上傳安裝包或者直接使用命令下載:wget 地址
解壓、編譯
tar zxf Python-2.7.13.tgz
cd Python-2.7.13
./configure
make && make install
注意:Python-2.7.13會默認安裝在目錄/usr/local/bin 下
到這里Python-2.7.13已經安裝好了,但是因為已經存在一個版本的Python,所以要解決多版本的問題,接下來就繼續進行配置
建立軟鏈接
重命名系統Python:mv /usr/bin/python /usr/bin/python.old
刪除系統python-config軟鏈接:rm -f /usr/bin/python-config
建立新的軟連接:
ln -s /usr/local/bin/python /usr/bin/python
ln -s /usr/local/bin/python-config /usr/bin/python-config
ln -s /usr/local/include/python2.7/ /usr/include/python2.7
安裝setuptools(下載ez_setup.py)
命令:wget 地址 -O - | python
安裝pip
命令:easy_install pip
安裝好pip就可以使用pip命令安裝python包了
例如:pip install scrapy
注意:安裝時我們可以手動指定安裝源如下:
pip install scrapy -i pip源地址
至此就完成python的安裝配置了
⑹ python ftp連接指定伺服器,並下載指定文件
ftp客戶端一般只有顯示、上傳、下載,並沒有打開文件的操作,所以你得先下載相應配置文件,在本地解析後,再繼續用相關參數下載後續文件。
⑺ python寫的ftp自動上傳腳本,怎麼判斷重復的文件不重傳呢size判斷不夠精確 有沒有更好的方式跪求大神
這個沒有特別准確的辦法。你連SIZE檢測也信不過。只有自己改程序了。
辦法1:改寫FTP程序,加一個hash確認。以前我這么做過。在python里可以輕松做一個FTP SERVER,加上自己做的MD5檢測就可以了。
辦法2:通過nc轉發請求,在NC里設置一個檢測。
辦法3:如果文件不大,上傳完再下載下來檢測
辦法4:採用自己傳有的流水號,重新設置FTP SERVER,讓它定期根據流水號,生成檢驗碼,然後你在客戶端定期下載這個文件。 這個方法過去在電信系統里經常使用。防出錯效果很好。
⑻ python ftplib 傳輸文件大小的文件,如何傳輸較大文件
沒有矛盾啊。只要你不一口氣將所有文件都載入到內存里去。使用FTP協議,發送大文件不成問題。
FTP協議是個很簡單的協議。你可以仔細看一下原理。然後再配合python的ftplib看。你會發現那些cmd就是FTP的命令。
⑼ Python中FTP 上傳出現10060錯誤,怎麼解決
連接類型
2.FTP伺服器故障
3.埠
試下用ACTV mode看看?
ftp.set_pasv(False)
⑽ 用python將本地文件上傳到FTP報錯
應該是沒有許可權創建文檔