使用 python pika 在 RabbitMQ 中获取传输的文件名

问题描述 投票:0回答:2

我在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)
python rabbitmq pika broker rmq
2个回答
2
投票

您可以使用 此方法 添加带有文件名的自定义标头,而不是随消息一起存储文件名。


0
投票

我想出了这个想法,对于那些想要在消息中包含文件名的人:

我已将文件名与消息连接起来。发完消息后,我确实在消息上分开了:

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)
© www.soinside.com 2019 - 2024. All rights reserved.