如何使用 Windows 从 tar 文件中读取特定文件?

How to read a specific file from a tar file using Windows?

我有一个 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

在代码的最后一行。我该如何阅读此文件?

当你调用pandas.read_csv()时,你需要给它一个文件名或file-like对象。 tar.extractfile() returns 一个 file-like 对象。不是将文件读入内存,而是将文件传递给 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)