最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python ftplib上傳文件名亂碼的解決辦法

 更新時(shí)間:2025年04月16日 11:02:47   作者:handsome1234  
本文主要介紹了python ftplib上傳文件名亂碼的解決辦法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

公司安排我用RPA把各電商平臺昨天直播和視頻相關(guān)的曝光、銷售等數(shù)據(jù)下載下來,我用rpa基本一個(gè)星期完成了,最后用影刀RPA自帶的ftp文件上傳工具,都指定的ftp服務(wù)器上,用RPA上傳后,文件名都是亂碼,默認(rèn)RPA內(nèi)嵌的ftplib的默認(rèn)編碼是拉丁文編碼,上傳中文就是亂碼,默認(rèn)組件又沒有其他設(shè)置(比方說編碼方面),于是被迫放棄現(xiàn)場的組件,自行編寫代碼以期解決,百度了一下:

1、嘗試上傳前,按照提示把文件名轉(zhuǎn)成utf-8,

def upload(f, remote_path, local_path):
    fp = open(local_path, "rb") #,encoding='utf-8'
    buf_size = 1024
    # f.storbinary("STOR {}".format(remote_path), fp, buf_size)
    # f.storbinary("STOR {}"+remote_path, fp, buf_size)
    # f.storbinary("STOR {}".format(remote_path)+r"/20250413_抖音_XXX服飾旗艦店_視頻合作視頻數(shù)據(jù)_1744606680.xlsx", fp, buf_size)
    # f.storbinary("STOR "+remote_path+r"/aa.xls", fp, buf_size)   #單文件ok
    filenam2=local_path[local_path.rfind('\\')+1:].strip()
    print(filenam2+"#"+remote_path+"#"+local_path)
    filenam3=filenam2.encode('utf-8').decode('iso-8859-1')
    f.storbinary("STOR "+remote_path+filenam3, fp, buf_size)


    fp.close()
    

亂碼還在,不起作用。

2、網(wǎng)上有說改源碼的,我這里是用影刀RPA作的,找他的源碼,電腦D盤搜索中。最后在我改源碼前,找到了更好的辦法,故這個(gè)方法沒有再試了。

3、把編碼設(shè)置成通用的utf-8還是不行

4、把編碼設(shè)置成通用的拉丁文還是不行:

ftp.encoding="iso-8859-1"

5、看文檔說可以使用paramiko 我安裝完了,測試:

def upload_file_via_ftp(hostname, port, username, password, local_file_path, remote_file_path):
    # 創(chuàng)建SSH客戶端實(shí)例
    client = paramiko.SSHClient()
    # 自動添加策略,保存服務(wù)器的主機(jī)名和密鑰信息
    # client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    
    try:
        # 連接到服務(wù)器
        client.connect(hostname, port, username, password)
        
        # 使用SFTPClient進(jìn)行文件傳輸
        sftp = client.open_sftp()
        sftp.put(local_file_path, remote_file_path)
        print(f"文件 {local_file_path} 已成功上傳到 {remote_file_path}")
        
        # 關(guān)閉SFTP連接
        sftp.close()
    except Exception as e:
        print(f"上傳文件時(shí)發(fā)生錯(cuò)誤: {e}")
    finally:
        # 關(guān)閉SSH連接
        client.close()

報(bào): 

Error reading SSH protocol banner

不知道ftp服務(wù)器上用哪個(gè)軟件設(shè)置的ftp功能,不知道知不知支持ssh,如果不支持的話,我就是白費(fèi)勁。

6、又看文檔說 pysftp 支持中文,我安裝,測試:

def main(args):
    with pysftp.Connection(glv['gvarFtpSerIP'], username=glv['gvarFtpUid'], password=glv['gvarFtpPs'],port=30000) as sftp:
    
    # sftp.get('遠(yuǎn)程中文文件.txt', '本地文件.txt')  # 下載
        sftp.put(r"C:\20250413_抖音_XXX服飾旗艦店_視頻合作視頻數(shù)據(jù)_1744606680.xlsx", '20250413_抖音_XXXX服飾旗艦店_視頻合作視頻數(shù)據(jù)_1744606680.xlsx')  # 上傳
        sftp.close()

報(bào):'Connection' object has no attribute '_sftp_live'  ,查了一圈,沒找到類似login 和 openftp的方法,暫時(shí)沒有好的辦法

7、又轉(zhuǎn)而看看內(nèi)嵌的ftplib,之前都是設(shè)置 utf-8,我靈機(jī)一動,為啥不設(shè)置 gbk呢?于是測試一下,效果可以。

最后代碼如下:

from ftplib import FTP


def upload(f, remote_path, local_path):
    fp = open(local_path, "rb") #,encoding='utf-8'
    buf_size = 1024
    # f.storbinary("STOR "+remote_path+r"/aa.xls", fp, buf_size)   #純英文文件名ok
    filenam2=local_path[local_path.rfind('\\')+1:].strip()
    print(filenam2+"#"+remote_path+"#"+local_path)
    f.storbinary("STOR "+remote_path+filenam2, fp, buf_size)   

    fp.close()


def main(args):
    ftp = FTP()
    ftp.encoding='gbk'#  ok  這里最重要

    ftp.connect(glv['gvarFtpSerIP'], 30000)      # 第一個(gè)參數(shù)可以是ftp服務(wù)器的ip或者域名,第二個(gè)參數(shù)為ftp服務(wù)器的連接端口,默認(rèn)為21
    ftp.set_debuglevel(2) 
    ftp.login(glv['gvarFtpUid'], glv['gvarFtpPs'])     # 匿名登錄直接使用ftp.login()
    ftp.cwd(glv['gvarRemotPath'])                # 切換到tmp目錄
   
    upload(ftp,"/sjzt/pp/ds/douyin/",r"C:\[20250411]_[抖音]_[XXXX服飾旗艦店]_[視頻合作視頻數(shù)據(jù)]_[1744461854].xlsx")   # 將當(dāng)前目錄下的a.txt文件上傳到ftp服務(wù)器的tmp目錄,命名為ftp_a.txt  
    # 上面也是Ok 的
    # download(ftp, "ftp_a.txt", "b.txt")  # 將ftp服務(wù)器tmp目錄下的ftp_a.txt文件下載到當(dāng)前目錄,命名為b.txt

    ftp.quit()

到此這篇關(guān)于python ftplib上傳文件名亂碼的解決辦法的文章就介紹到這了,更多相關(guān)python ftplib上傳文件名亂碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Python通過rembg實(shí)現(xiàn)圖片背景去除功能

    Python通過rembg實(shí)現(xiàn)圖片背景去除功能

    在圖像處理領(lǐng)域,背景移除是一個(gè)常見且重要的任務(wù),Python中的rembg庫就是一個(gè)強(qiáng)大的工具,它基于深度學(xué)習(xí)技術(shù),能夠準(zhǔn)確、快速地移除圖像背景,本文將結(jié)合多個(gè)實(shí)際案例,詳細(xì)介紹rembg庫的安裝、基本用法、高級功能以及在實(shí)際項(xiàng)目中的應(yīng)用,需要的朋友可以參考下
    2024-09-09
  • Python?pomegranate庫實(shí)現(xiàn)基于貝葉斯網(wǎng)絡(luò)拼寫檢查器

    Python?pomegranate庫實(shí)現(xiàn)基于貝葉斯網(wǎng)絡(luò)拼寫檢查器

    這篇文章主要為大家介紹了Python?pomegranate庫實(shí)現(xiàn)基于貝葉斯網(wǎng)絡(luò)拼寫檢查器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-04-04
  • python 使用Tensorflow訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)鳶尾花分類

    python 使用Tensorflow訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)鳶尾花分類

    這篇文章主要介紹了python 使用Tensorflow訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)鳶尾花分類,幫助大家更好的利用python進(jìn)行深度學(xué)習(xí),感興趣的朋友可以了解下
    2021-05-05
  • python繪制三維圖的詳細(xì)新手教程

    python繪制三維圖的詳細(xì)新手教程

    通常我們用 Python 繪制的都是二維平面圖,但有時(shí)也需要繪制三維場景圖,下面這篇文章主要給大家介紹了關(guān)于python繪制三維圖的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • python實(shí)現(xiàn)簡單圖書管理系統(tǒng)

    python實(shí)現(xiàn)簡單圖書管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡單圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Pandas?計(jì)算相關(guān)性系數(shù)corr()方式

    Pandas?計(jì)算相關(guān)性系數(shù)corr()方式

    這篇文章主要介紹了Pandas?計(jì)算相關(guān)性系數(shù)corr()方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 提升Python編程水平必不可少的重構(gòu)技巧

    提升Python編程水平必不可少的重構(gòu)技巧

    在Python中,編寫可讀性強(qiáng)且Pythonic的代碼是至關(guān)重要的,重構(gòu)技巧是指通過調(diào)整代碼結(jié)構(gòu)和風(fēng)格,使其更符合Python的慣例和標(biāo)準(zhǔn),從而提高代碼的可讀性、簡潔性和可維護(hù)性,本文將深入探討八項(xiàng)重構(gòu)技巧,幫助您編寫更Pythonic的代碼
    2024-01-01
  • 如何用python開發(fā)Zeroc Ice應(yīng)用

    如何用python開發(fā)Zeroc Ice應(yīng)用

    這篇文章主要介紹了如何用python開發(fā)Zeroc Ice應(yīng)用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • python使用mysql的兩種使用方式

    python使用mysql的兩種使用方式

    pymsql是Python中操作MySQL的模塊。這篇文章主要介紹了python使用mysql的兩種使用方式,需要的朋友可以參考下
    2018-03-03
  • 如何將Pycharm中Terminal使用Powershell作為終端

    如何將Pycharm中Terminal使用Powershell作為終端

    這篇文章主要介紹了如何將Pycharm中Terminal使用Powershell作為終端問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05

最新評論

灵璧县| 沁水县| 鹿泉市| 广汉市| 乌海市| 太谷县| 阳高县| 天长市| 清水河县| 苍梧县| 承德县| 长海县| 沈阳市| 锡林郭勒盟| 兰溪市| 苍南县| 夏邑县| 沁水县| 普兰店市| 南江县| 平塘县| 泸西县| 南开区| 福安市| 新竹市| 夹江县| 普宁市| 泸西县| 浦北县| 淮滨县| 弥勒县| 盘锦市| 绍兴县| 江油市| 乌海市| 余干县| 金门县| 政和县| 安宁市| 额尔古纳市| 通化县|