我想写一个哈希函数,从3个整数a,b,c返回一个哈希值。我希望能够选择每个整数编码的位数并将它们连接起来。例如:
COPY t (c1, c2, c3 AS CURRENT_LOAD_SOURCE())
FROM '/home/load_file_1' ON exampledb_node02, '/home/load_file_2' ON exampledb_node03
DELIMITER ',';
应该给出
#!/bin/bash
for INPUT_FILE in /path/to/file*.dat; do
vsql -c "copy test_file_name_insert
(
input_file_name as '$INPUT_FILE',
id,
name
)
from '/home/test_input_file.txt'
delimiter '|' ;"
done
即。 20位。
给定a,b和c作为整数(60,113和5)以及每个允许的位数(8,8和4),如何获取散列,将其存储在总数的python对象中大小(20位),并将其写入/加载到文件?
答案 0 :(得分:0)
这是一个将任意位数写入文件类对象的类。完成后请致电flush
。
class bitwriter():
def __init__(self, f):
self.f = f
self.bits = 0
self.count = 0
def write(self, value, bitcount):
mask = (1 << bitcount) - 1
self.bits = (self.bits << bitcount) | (value & mask)
self.count += bitcount
while self.count >= 8:
byte = self.bits >> (self.count - 8)
self.f.write(byte, 1)
self.count -= 8
self.bits &= (1 << self.count ) - 1
def flush(self):
if self.count != 0:
byte = self.bits << (8 - count)
self.f.write(byte, 1)
self.bits = self.count = 0
self.f.flush()
答案 1 :(得分:0)
我认为这可以满足您的需求。它使用我的另一个答案中引用的bitio
模块来写入/读取文件中的位。
操作系统通常要求文件大小为8位的倍数,因此最终会创建一个24位(3字节)文件来存储单个20位值。当然,如果你写了几个,一个紧接着另一个,并且直到最后一个之后才调用 label.backgroundColor = [UIColor redColor];
,那么每20位值的这16.7%的开销就不会发生。
flush()