我有一个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)
答案 0 :(得分:0)
在你的cron作业结束时放一个| tr -d \r
。
答案 1 :(得分:0)
根据Charles Duffy的建议,我能够用替换('\ r','')删除^ M.我将我的代码更改为查询['stmt'] [0:80] .replace('\ r','')