python的2.5與2.7版本中ftp模組的一個小區別
今天原本計劃更換下python的版本,從2.5升級到2.7, 結果發現很多模組貌似不通,
目前找出其中一個關於ftp模組的區別,檢視了python中ftplib模組中的實現,版本間更新導致的
程式碼中關於ftp的實現:
ftp = FTP()
ftp.connect(ftpip,'')
ftp.login(ftpusername,ftppwd)
ftp.cwd(ftpfolder)
在python2.5中測試通過,然而在2.7版本中執行報錯 error: [Errno 10049] The requested address is not valid in its context
通過對比python中ftplib.py中connect() 程式碼發現
python 2.5中
if host: self.host = host
if port: self.port = port
當傳參為 '' 時, self.port將採用預設值
python 2.7中
if host != '':
self.host = host
if port > 0:
self.port = port
當傳參為 '' 時, 判斷port值大於0,self.port將被賦為''
這就導致之後sock.connect連線失敗
目前python2.7以上版本的多數應用中,採用 ftp.connect(ftpip)
PS:兩個版本間的ftp模組中connect的改動比較大,並增加超時設定,可以多看看
相關文章
- Python中 ‘==‘ 與‘is‘的區別Python
- Python中爬蟲框架或模組的區別!Python爬蟲框架
- Python中爬蟲框架或模組的區別Python爬蟲框架
- FTP和TFTP的區別與介紹FTP
- python 的類 模組 包的區別Python
- Python類、模組、包的區別Python
- sql server中的一個坑-len與datalength區別SQLServer
- order by在SQL Server與Oracle中的一個區別SQLServerOracle
- HTTp和ftp的區別HTTPFTP
- ftp命令 binary mode與ascii mode的區別FTPASCII
- PYTHON教程中“編寫一個Python指令碼”版本一的windows版本Python指令碼Windows
- python 中 is, is not ,==, != 的區別Python
- 微信小程式與vue的一些區別微信小程式Vue
- git與svn的區別-小結一下Git
- 前端模組化,AMD與CMD的區別前端
- Python中eval與exec的使用及區別Python
- python中input()與raw_input()的區別Python
- Nginx的HTTP模組與Stream模組:區別與應用場景NginxHTTP
- 深入瞭解python2.7 str(), repr(), (``操作符)的區別Python
- Python類、模組、包的概念及區別Python
- FTP 中ascii 和bin 的區別和使用方法FTPASCII
- Javascript中“==”與“===”的區別JavaScript
- js中“==”與"==="的區別JS
- set autot traceonly與explain plan for的一點小區別AI
- Python 中 "is" 與 "==" 有啥區別?Python
- Python 中 is 和 == 的區別Python
- Python中is和==的區別Python
- 學Python用哪個版本?Python2與Python3有何區別?Python
- Python 函式中引數前面一個和兩個星號(**)的區別Python函式
- 淺談SFTP和FTP的區別FTP
- python的模組和類有什麼區別Python
- python中#!/usr/bin/python與#!/usr/bin/env python的區別Python
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- PHP版本的區別PHP
- Git與其他版本控制系統的區別Git
- MySQL各個版本區別MySql
- 新手學python哪個版本好?Python2與Python3有何區別?Python
- 聊聊Spring Boot幾個版本的區別Spring Boot