使用 python pika 在 RabbitMQ 中获取传输的文件名
Get transferred file name in RabbitMQ using python pika
我在 Python3 中使用 pika 将 CSV 文件从一个节点发送到另一个节点,这里一切正常。
我在这里唯一需要的是在接收节点中获取传输的文件名(例如:filename-2017-01-01.csv)
有没有办法做到这一点?
这是获取文件时的处理部分。
def callback(ch, method, properties, body):
ch.basic_ack(delivery_tag=method.delivery_tag)
with open('test.csv', 'wb') as write_csv:
write_csv.write(body)
我想出了这个主意,对于那些想在消息中包含文件名的人:
我已将文件名与消息连接起来。发送消息后,我确实在消息上进行了拆分:
with open(file, 'rb') as csv_file:
return file + csv_file.read().decode()
另一边:
file_name = body.decode().split('.csv')[0]
message = body.decode().split('.csv')[1]
with open('{}.csv'.format(file_name), 'w') as write_csv:
write_csv.write(message)
RabbitMQ 团队监控 the rabbitmq-users
mailing list 并且有时只在 Whosebug 上回答问题。
您可以使用 this method 添加带有文件名的自定义 header,而不是将文件名与消息一起存储。
我在 Python3 中使用 pika 将 CSV 文件从一个节点发送到另一个节点,这里一切正常。 我在这里唯一需要的是在接收节点中获取传输的文件名(例如:filename-2017-01-01.csv)
有没有办法做到这一点?
这是获取文件时的处理部分。
def callback(ch, method, properties, body):
ch.basic_ack(delivery_tag=method.delivery_tag)
with open('test.csv', 'wb') as write_csv:
write_csv.write(body)
我想出了这个主意,对于那些想在消息中包含文件名的人:
我已将文件名与消息连接起来。发送消息后,我确实在消息上进行了拆分:
with open(file, 'rb') as csv_file:
return file + csv_file.read().decode()
另一边:
file_name = body.decode().split('.csv')[0]
message = body.decode().split('.csv')[1]
with open('{}.csv'.format(file_name), 'w') as write_csv:
write_csv.write(message)
RabbitMQ 团队监控 the rabbitmq-users
mailing list 并且有时只在 Whosebug 上回答问题。
您可以使用 this method 添加带有文件名的自定义 header,而不是将文件名与消息一起存储。