我有以下 ORIGINAL.TXT 文件:
"TRACE: A"
"FORMAT: WOW"
"Frequency" "Data 1" "Data 2"
1 1 2
1 6 0
"Frequency" "Data 1" "Data 2"
1 5 0
1 6 0
为了运行python脚本,我必须首先在LibreOffice中打开.TXT文件,然后保存并关闭它,以创建带有分隔符=','的EXPECT.TXT文件,如下所示:
"TRACE: A",,
"FORMAT: WOW",,
,,
"Frequency","Data 1","Data 2"
1,5,0
1,5,0
"Frequency","Data 1","Data Trace Imag"
1,5,0
1,5,0
现在,我可以使用以下代码来绘制图形:
import numpy as np
from pylab import *
fileName = 'EXPECTED.TXT';
traceAdata= np.genfromtxt(fileName, delimiter=',')[3:5].T;
x = traceAdata[0]*1e-6;
A = traceAdata[1];
plot(x,A);
savefig(fileName + '.png');
我尝试在原始 TXT 文件中使用不同的分隔符,例如:"、"无"、"\t",但它们都不起作用,并且出现以下错误:
Line #5 (got 3 columns instead of 1)
有没有其他方法可以使用python将原始TXT文件转换为具有所需分隔符的文件?
UPD:当前解决方案,谢谢@lxop。
import numpy as np
from pylab import *
fileName = 'C2.TXT';
traceAdata= np.genfromtxt(fileName, skip_header=21,skip_footer = 334).T;
x = traceAdata[0]*1e-6;
A = traceAdata[1];
plot(x,A);
savefig('traceAdata.png');
traceBdata= np.genfromtxt(fileName, skip_header=337).T;
x = traceBdata[0]*1e-6;
B = traceBdata[1];
plot(x,B);
savefig('traceBdata.png');
您可以使用类似
import numpy as np
from pylab import *
fileName = '11.TXT';
traceAdata= np.genfromtxt(fileName, skip_header=4).T;
x = traceAdata[0]*1e-6;
A = traceAdata[1];
plot(x,A);
savefig(fileName + '.png');
特别是不要使用skip_header
跳过没有数据的行。此外,如果您显式指定delimiter=' '
则genfromtxt
会将每个空格视为分隔符,并尝试获取各个空格字符之间的值,因此只需省略该参数即可。
如果你真的想先把它转换为CSV,那么你应该看看解析库,因为它需要处理引用等。