我有一个tar文件,里面压缩了几个文件。我需要使用pandas读取一个特定的文件( csv格式)。我尝试使用以下代码:
import tarfile
tar = tarfile.open('my_files.tar', 'r:gz')
f = tar.extractfile('some_files/need_to_be_read.csv')
import pandas as pd
df = pd.read_csv(f.read())
但它抛出了以下错误:
OSError: Expected file path name or file-like object, got <class 'bytes'> type
在代码的最后一行。我如何阅读这个文件呢?
发布于 2020-09-28 09:11:58
当你调用pandas.read_csv()
时,你需要给它一个文件名或者类似文件的对象。tar.extractfile()
返回一个类似文件的对象。将文件传递给Pandas,而不是将文件读取到内存中。
因此,删除.read()
部件:
import tarfile
tar = tarfile.open('my_files.tar', 'r:gz')
f = tar.extractfile('some_files/need_to_be_read.csv')
import pandas as pd
df = pd.read_csv(f)
https://stackoverflow.com/questions/64094705
复制相似问题