0

我在 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)
4

2 回答 2

2

RabbitMQ 团队监控邮件列表rabbitmq-users有时只在 StackOverflow 上回答问题。


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

于 2018-06-13T14:50:12.223 回答
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)
于 2018-06-13T08:51:17.753 回答