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