Python 2.7 如何使用python脚本快速压缩文件

Python 2.7 如何使用python脚本快速压缩文件,python-2.7,csv,snappy,Python 2.7,Csv,Snappy,我正在尝试使用python脚本和python snappy模块以snappy格式压缩csv文件。这是我目前的代码: import snappy d = snappy.compress("C:\\Users\\my_user\\Desktop\\Test\\Test_file.csv") with open("compressed_file.snappy", 'w') as snappy_data: snappy_data.write(d) snappy_data.close() 此代

我正在尝试使用python脚本和python snappy模块以snappy格式压缩csv文件。这是我目前的代码:

import snappy
d = snappy.compress("C:\\Users\\my_user\\Desktop\\Test\\Test_file.csv")
with open("compressed_file.snappy", 'w') as snappy_data:
     snappy_data.write(d)
snappy_data.close()
此代码实际上创建了一个snappy文件,但创建的snappy文件只包含一个字符串:
“C:\Users\my\u user\Desktop\Test\Test\u file.csv”

所以我对压缩csv有点迷茫。我使用以下命令在windows cmd上完成了此操作:

python -m snappy -c Test_file.csv compressed_file.snappy
但我需要将它作为python脚本的一部分来完成,所以使用cmd对我来说并不合适

多谢各位,
Álvaro

您正在压缩普通字符串,因为compress函数获取原始数据

压缩snappy数据有两种方法—一种是块压缩,另一种是流(或帧)数据压缩

此函数将使用框架方法压缩文件

import snappy

def snappy_compress(path):
        path_to_store = path+'.snappy'

        with open(path, 'rb') as in_file:
          with open(path_to_store, 'w') as out_file:
            snappy.stream_compress(in_file, out_file)
            out_file.close()
            in_file.close()

        return path_to_store

snappy_compress('testfile.csv')
可以使用以下命令行从命令行解压缩:

python -m snappy -d testfile.csv.snappy testfile_decompressed.csv
应该注意,python/snappy使用的当前帧与Hadoop使用的帧不兼容