我一直在尝试使用请求库从服务器主机URL下载压缩的csv
当我从同一台服务器下载一个不需要压缩的较小文件时,它在读取CSV时没有问题,但是使用这个文件时,我返回了编码错误
我尝试了多种类型的编码,以csv的形式读入,以zip文件的形式读入,然后打开(此时我得到的错误是文件不是zip文件)
此外,我还尝试使用此处建议的zipfile库:Reading csv zipped files in python
并且还尝试在read_csv
中设置编码和压缩
适用于非压缩服务器文件的代码如下:
response = requests.get(url, auth=HTTPBasicAuth(un, pw), stream=True, verify = False)
dfs = pd.read_csv(response.raw)
但用于此文件时返回'utf-8' codec can't decode byte 0xfd in position 0: invalid start byte
我也尝试过:
request = get(url, auth=HTTPBasicAuth(un, pw), stream=True, verify=False)
zip_file = ZipFile(BytesIO(request.content))
files = zip_file.namelist()
with gzip.open(files[0], 'rb') as csvfile:
csvreader = csv.reader(csvfile)
for row in csvreader:
print(row)
返回一个seek属性错误
以下是一种方法:
如果要读取多个csv zip文件中的特定csv,请将
myzip.namelist()[0]
替换为要读取的文件。如果不知道其名称,可以使用print(ZipFile(io.BytesIO(response.content)))
检查zip
文件内容相关问题 更多 >
编程相关推荐