【问题标题】:Get transferred file name in RabbitMQ using python pika使用 python pika 在 RabbitMQ 中获取传输的文件名
【发布时间】:2018-11-21 14:40:59
【问题描述】:

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


    【解决方案1】:

    RabbitMQ 团队会监控 the rabbitmq-users mailing list,但有时只会在 StackOverflow 上回答问题。


    您可以使用this method 来添加带有文件名的自定义标题,而不是将文件名与消息一起存储。

    【讨论】:

      【解决方案2】:

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

      我已将文件名与消息连接起来。发送消息后,我确实对消息进行了拆分:

      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)
      

      【讨论】:

        猜你喜欢
        • 2016-10-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-07
        • 2012-08-26
        • 1970-01-01
        相关资源
        最近更新 更多