从python脚本创建的输出文件中删除回车符^ M

时间:2017-08-23 14:47:04

标签: python linux carriage-return

我有一个python脚本输出具有类似文本的文件:

1234\insert into\\default\e72303\FINISHED\False\23ms\N/A\37m10s\105\2017-
08-23 09:55:10.155407000\2017-08-23 09:55:10.178453000

此数据按“\”拆分,并导入到配置单元数据库中的表。

我的问题是某些数据包含^ M回车字符,它分割了我的数据:

1234\INSERT INTO customer_touch.XXX_test_data_pickup^M
(^M
    CI\default\e72303\FINISHED\False\331ms\0 / 0 ( 0%)\37m11s\0\2017-08-
23 09:55:08.066620000\2017-08-23 09:55:08.398299000

我需要删除^ M并将所有数据放在一起。我已经在文件名上尝试了dos2unix,它确实删除了^ M但我的数据仍然被拆分。

以下是我的代码。我有crontab设置将其输出到文本文件

datanodes = ["https://XXXXXXX/",
             "https://XXXXXXX"]                

for i, datanode in enumerate(datanodes):
   try:
       response = requests.get(datanode + "queries?
json",auth=HTTPDigestAuth(XXX, XXX),verify='XXXX.pem')
    data = response.json()
    for query in data['completed_queries']:
        print query['query_id'] + "\\" + query['stmt'][0:80] + "\\" + query['default_db'] + "\\" + query['effective_user'] + "\\" + query['state'] + "\\"  + str(query['executing']) + "\\" + query['duration'] + "\\" + query['progress'] + "\\" + query['waiting_time'] + "\\" + str(query['rows_fetched']) + "\\" + query['start_time']+ "\\" + query['end_time']

except IOError as ioe:
    print ioe
except Exception as e:
    print(e)

2 个答案:

答案 0 :(得分:0)

在你的cron作业结束时放一个| tr -d \r

https://ss64.com/bash/tr.html

答案 1 :(得分:0)

根据Charles Duffy的建议,我能够用替换('\ r','')删除^ M.我将我的代码更改为查询['stmt'] [0:80] .replace('\ r','')