如何使用 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)
我有一个 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)