我只是在python上制作gzip的消息.
import gzip
f=gzip.open('Onlyfinnaly.log.gz','rb')
file_content=f.read()
print file_content
Run Code Online (Sandbox Code Playgroud)
我在屏幕上没有输出.作为python的初学者,我想知道如果我想在gzip文件中读取文件的内容该怎么办.谢谢.
我试图只获得Python中有超过400万行的csv.gz文件的前100行.我还想了解每列的#列和标题的信息.我怎样才能做到这一点?
我查看了python:从压缩文本文件中读取行以弄清楚如何打开文件,但我正在努力弄清楚如何实际打印前100行并获取列中信息的一些元数据.
我在python中找到了这个读取文件的前N行,但不知道如何将它与打开csv.gz文件结合并读取它而不保存未压缩的csv文件.
我写了这段代码:
import gzip
import csv
import json
import pandas as pd
df = pd.read_csv('google-us-data.csv.gz', compression='gzip', header=0, sep=' ', quotechar='"', error_bad_lines=False)
for i in range (100):
print df.next()
Run Code Online (Sandbox Code Playgroud)
我是Python的新手,我不理解结果.我确定我的代码是错的,我一直在尝试调试它,但我不知道要查看哪些文档.
我得到了这些结果(并且它一直在控制台上 - 这是一个摘录):
Skipping line 63: expected 3 fields, saw 7
Skipping line 64: expected 3 fields, saw 7
Skipping line 65: expected 3 fields, saw 7
Skipping line 66: expected 3 fields, saw 7
Skipping line 67: expected 3 fields, saw 7 …Run Code Online (Sandbox Code Playgroud) 我有几个数据数字文件,其中小数点分隔符是逗号.所以我使用lambda函数进行转换:
import numpy as np
def decimal_converter(num_cols):
conv = dict((col, lambda valstr: \
float(valstr.decode('utf-8').replace(',', '.'))) for col in range(nb_cols))
return conv
data = np.genfromtxt("file.csv", converters = decimal_converter(3))
Run Code Online (Sandbox Code Playgroud)
文件中的数据是这样的:
0; 0,28321815; 0,5819178
1; 0,56868281; 0,85621369
2; 0,24022026; 0,53490058
3; 0,63641921; 0,0293904
4; 0,65585546; 0,55913776
Run Code Online (Sandbox Code Playgroud)
这里有我的函数,decimal_converter我需要指定我的文件包含的列数.通常我不需要指定numpy.genfromtxt文件中的列数,而是需要查找所有列.即使使用转换器选项,我也希望保留此功能.
我正在请求一个gzip压缩的csv文件.
如何解压缩该文件并将其转换为csv对象?
csv_gz_file = get("example.com/filename.csv.gz", headers=csv_headers, timeout=30, stream=True)
reader = csv.reader(csv_gz_file)
for row in reader:
print row
Run Code Online (Sandbox Code Playgroud)
它抛出这个因为它没有解压缩
_csv.Error: line contains NULL byte
Run Code Online (Sandbox Code Playgroud)