gpt4 book ai didi

python - 从 FTP 服务器上的 ZIP 存档中读取文件而不下载到本地系统

转载 作者:行者123 更新时间:2023-12-05 02:51:35 25 4
gpt4 key购买 nike

我在 FTP 服务器上的目标文件是一个 ZIP 文件,而 .CSV 位于更远的两个文件夹中。

我怎样才能使用 BytesIO 让 pandas 在不下载 csv 的情况下读取它?

这是我目前所拥有的:

ftp = FTP('FTP_SERVER')
ftp.login('USERNAME', 'PASSWORD')
flo = BytesIO()
ftp.retrbinary('RETR /ParentZipFolder.zip', flo.write)
flo.seek(0)

flo 作为我感兴趣的 BytesIO 对象,我如何才能在对象中向下导航几个文件夹,以允许 pandas 读取我的 .csv 文件?这有必要吗?

最佳答案

zipfile 模块接受存档和单个文件的类文件对象,因此您可以提取 csv 文件而无需将存档写入磁盘。由于 read_csv 也接受类似文件的对象,所以一切都应该可以正常工作(前提是您有足够的可用内存):

...
flo = BytesIO()
ftp.retrbinary('RETR /ParentZipFolder.zip', flo.write)
flo.seek(0)
with ZipFile(flo) as archive:
with archive.open('foo/fee/bar.csv') as fd:
df = pd.read_csv(fd) # add relevant options here include encoding it is matters

关于python - 从 FTP 服务器上的 ZIP 存档中读取文件而不下载到本地系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63049863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com