Ely*_*sta 16 csv zip python-2.7
我正在尝试从压缩的csv文件中获取数据.有没有办法在不解压缩整个文件的情况下执行此操作?如果没有,我如何解压缩文件并有效地阅读它们?
Yar*_*ron 34
我使用"zipfile"模块直接导入ZIP和pandas数据帧.假设文件名是"intfile",它在zip中名为"THEZIPFILE".
import pandas as pd
import zipfile
zf = zipfile.ZipFile('C:/Users/Desktop/THEZIPFILE.zip')
df = pd.read_csv(zf.open('intfile.csv'))
Run Code Online (Sandbox Code Playgroud)
vol*_*238 33
如果您不使用 Pandas,则可以完全使用标准库来完成。这是 Python 3.7 代码:
import csv
from io import TextIOWrapper
from zipfile import ZipFile
with ZipFile('yourfile.zip') as zf:
with zf.open('your_csv_inside_zip.csv', 'r') as infile:
reader = csv.reader(TextIOWrapper(infile, 'utf-8'))
for row in reader:
# process the CSV here
print(row)
Run Code Online (Sandbox Code Playgroud)
Har*_*sad 19
一个快速的解决方案可以使用下面的代码!
import pandas as pd
#pandas support zip file reads
df = pd.read_csv("/path/to/file.csv.zip")
Run Code Online (Sandbox Code Playgroud)
小智 9
zipfile also supports the with statement.
So adding onto yaron's answer of using pandas:
with zipfile.ZipFile('file.zip') as zip:
with zip.open('file.csv') as myZip:
df = pd.read_csv(myZip)
Run Code Online (Sandbox Code Playgroud)
认为 Yaron 有最好的答案,但认为我会添加一个代码,该代码遍历 zip 文件夹中的多个文件。然后它会附加结果:
import os
import pandas as pd
import zipfile
curDir = os.getcwd()
zf = zipfile.ZipFile(curDir + '/targetfolder.zip')
text_files = zf.infolist()
list_ = []
print ("Uncompressing and reading data... ")
for text_file in text_files:
print(text_file.filename)
df = pd.read_csv(zf.open(text_file.filename)
# do df manipulations
list_.append(df)
df = pd.concat(list_)
Run Code Online (Sandbox Code Playgroud)
是的。你想要模块“zipfile”
您打开 zip 文件本身 zipfile.ZipInfo([filename[, date_time]])
然后,您可以使用ZipFile.infolist()
枚举 zip 中的每个文件,并使用ZipFile.open(name[, mode[, pwd]])
小智 5
这是我一直使用的最简单的东西。
import pandas as pd
df = pd.read_csv("Train.zip",compression='zip')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20882 次 |
最近记录: |