Date,Time,Ref,Sen,ATN,Flow,PCB temp,Status,Battery,BC
2015/04/23,12:30:00,779581,908043,"-15,254",49,31,0,100,
2015/04/23,12:35:00,778715,907084,"-15,259",49,31,0,100,-127
2015/04/23,12:40:00,778299,906419,"-15,239",49,32,0,100,461
(...)
您好,我有一个上面的ascii文件,我试图用分号替换逗号。这是我正在使用的代码:
filein = open('Prueba1.txt')
fileout = open('Fin.txt', 'wt')
for line in filein:
if line.startswith('20'):
fileout.write( line.replace(',', ';') )
filein.close()
fileout.close()
问题在于,现在我要保留第5列的逗号并加上引号。 有什么想法吗?
答案 0 :(得分:2)
您是否考虑过将其另存为csv文件。
将其保存为csv文件后:
import pandas as pd
v = pd.read_csv("check_delete.csv")
输出:
Date Time Ref Sen ATN Flow PCB temp Status Battery BC
0 2015/04/23 12:30:00 779581 908043 -15,254 49 31 0 100 NaN
1 2015/04/23 12:35:00 778715 907084 -15,259 49 31 0 100 -127.0
2 2015/04/23 12:40:00 778299 906419 -15,239 49 32 0 100 461.0
您可以将其作为数据框读取。
答案 1 :(得分:0)
如果您不想使用.csv文件,这是利用split()
方法的答案。
让我们认为该行是:
line = '2015/04/23,12:35:00,778715,907084,"-15,259",49,31,0,100,-127'
首先,将线分成三部分。引号中的部分之前,引号中的部分以及引号中的部分之后的部分。
可以通过line.split('"')
完成。
这将为我们提供包含以下三个部分的列表:
alist = ['2015/04/23,12:35:00,778715,907084,', '-15,259', ',49,31,0,100,-127']
现在,用逗号分隔列表的第一个和最后一个元素。 并将所有元素添加到一个空字符串。 将此字符串写入新文件。
赞:
left_part = alist[0].split(',')
right_part = alist[2].split(',')
middle_part = alist[1]
final_list = left_part + [middle_part] + right_part
new_line = ''
for part in final_list:
# to prevent the empty strings to be added add the if condition.
if part:
new_line += part + ';'
最终结果应如下所示:
'2015/04/23;12:35:00;778715;907084;-15,259;49;31;0;100;-127;'
答案 2 :(得分:0)
使用csv
Python标准库的解决方案:
import csv
with open('example.csv', newline='') as inputfile, \
open('parsedcsv.csv', 'w', newline='') as outpufile:
datareader = csv.reader(inputfile, delimiter=',', quotechar='"')
csvwriter = csv.writer(outpufile, delimiter=';',
quotechar="'", quoting=csv.QUOTE_MINIMAL)
csvwriter.writerows(datareader)
从文档中引用有关QUOTE_MINIMAL选项的信息:
csv.QUOTE_MINIMAL:指示编写器对象仅引用那些字段 其中包含特殊字符,例如定界符,quotechar或任何其他字符 行尾符中的字符。
输出文件为:
Date;Time;Ref;Sen;ATN;Flow;PCB temp;Status;Battery;BC
2015/04/23;12:30:00;779581;908043;-15,254;49;31;0;130;
2015/04/23;12:35:00;778715;907084;-15,259;49;31;0;100;-127
2015/04/23;12:40:00;778299;906419;-15,239;49;32;0;100;461