我试图从一个txt文件转换为另一个csv文件,但为什么不能做我需要怎么样。
我收到了以下文本:
Interface Status Protocol Description
Gi1 up up MANAGEMENT INTERFACE - DON'T TOUCH ME
Gi2 up up Network Interface
Gi2.101 up up mpls-subinterface-CKTx904949
Gi3 admin down down Network Interface
Lo0 up up
Lo56 up up THIS IS A TEST LOOPBACK
Vi0 up up
这是我剧本:
output = open("command.txt", "r")
for line in output.readlines():
lista = re.sub(r'\s{2,}', ";", line)
archivo_csv = open("output-1.txt", "a")
archivo_csv.write(lista + ";" + "\n")
archivo_csv.close()
output.close()
output = open("output.txt", "r+") #This second "loop" is becose between "Protocol"
lineas = output.readlines() #and "Description" be only one space, the regular
linea_1 = lineas[0] #expression that i did don't work for this case
lista = re.sub(r'\s+', ";", linea_1)
output.seek(0)
output.write(lista)
output.close()
vaciar_archivo = open("output.csv", "w")
vaciar_archivo.close()
output = open("output.txt", "r")
for line in output.readlines():
lista = line
archivo_csv = open("output.csv", "a")
archivo_csv.write(lista)
archivo_csv.close()
output.close()
输出如下:
Interface;Status;Protocol;Description;
;
Gi1;up;up;MANAGEMENT INTERFACE - DON'T TOUCH ME
;
Gi2;up;up;Network Interface
;
Gi2.101;up;up;mpls-subinterface-CKTx904949
;
Gi3;admin down;down;Network Interface
;
Lo0;up;up;;
Lo56;up;up;THIS IS A TEST LOOPBACK
;
Vi0;up;up;;
我做不好,我想我对正则表达式的形式有问题。
我需要这样做,以便CSV文件不会生成空行:
Interface;Status;Protocol;Description
Gi1;up;up;MANAGEMENT INTERFACE - DON'T TOUCH ME
Gi2;up;up;Network Interface
Gi2.101;up;up;mpls-subinterface-CKTx904949
Gi3;admin down;down;Network Interface
Lo0;up;up
Lo56;up;up;THIS IS A TEST LOOPBACK
Vi0;up;up
你能帮我改进我的代码吗?
1条答案
按热度按时间cedebl8k1#
您可以尝试
pandas.read_fwf
:印刷品:
并将
data.csv
: