繁体   English   中英

从ftp服务器的tar.gz文件中提取xml文件列表

[英]extracting list of xml files from tar.gz file from ftp server

我需要提取要读取的tar.gz文件中的xml文件列表。

我尝试了这个:

import os
from ftplib import FTP

def writeline(data):
    filedata.write(data)
    filedata.write(os.linesep)

ftp = FTP('ftp.my.domain.com')
ftp.login(user="username",passwd="password")
ftp.cwd('inner_folder')
filedata = open('mytargz.tar.gz', 'w')
ftp.retrlines('RETR %s' % ftp.nlst()[0], writeline)

我使用ftp.nlst()[0]因为我的ftp中有tar.gz文件的列表。 看来我在writeline回调中接收的data有些奇怪,并且比filedata.write(data)抛出错误: {UnicodeEncodeError}'charmap' codec can't encode character '\\x8b' in position 1: character maps to <undefined> 我真的可以在这里使用一些帮助。

我没有ftp服务器可以尝试使用,但这应该可以工作:

import os
from ftplib import FTP

def writeline(data):
    filedata.write(data)

ftp = FTP('ftp.my.domain.com')
ftp.login(user="username",passwd="password")
ftp.cwd('inner_folder')
filedata = open('mytargz.tar.gz', 'wb')
ftp.retrbinary('RETR %s' % ftp.nlst()[0], writeline)



请注意,我们使用写二进制'wb'打开文件,并要求ftp返回二进制而不是文本,并且回调函数仅在不添加分隔符的情况下写

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM