Python:parse.exp to.cs

2024-04-20 01:00:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在遍历.exp文件的目录,从每个文件中提取我想要的信息,然后将其编译成.csv文件。它不雅观,但在这里:

    outMCfile = open(os.path.join(workingDir,'output',date+'NeptuneCdSummary.csv'),'w+')
for fn in fileList:
    infile = os.path.join(workingDir,fn)

    tmpHeader = open(infile,'r').readlines()
    for line in tmpHeader:
        line = line.strip()
        if line.startswith('Date') == True:
            doa = line.split(' ')
            doa = doa[1]
            outMCfile.write(doa)
            outMCfile.write("\n")
        elif line.startswith('Run number') == True:
            run = line.split(':')
            run = run[1].strip()
            outMCfile.write(run)
            outMCfile.write("\n")
        elif line.startswith('Comment') == True:
            comment = line.split(':')
            comment = comment[1].strip()
            outMCfile.write(comment)
            outMCfile.write("\n")
        elif line.startswith('SampleType') == True:
            samType = line.split(':')
            samType = samType[1].strip()
            outMCfile.write(samType)
            outMCfile.write("\n")
        elif line.startswith('Cycle') == True:
            labels = line
            outMCfile.write(labels)
            outMCfile.write("\n")
        elif line.startswith('***') == True:
            summary = line
            outMCfile.write(summary)
            outMCfile.write("\n")

outMCfile.close()

for循环中的最后两个条件(以“Cycle”和“***”开头的行)宽22-32列(有些是索引,有些是浮点)。我如何界定结果?我只是在输出CSV中得到一长串数字,这些行都在同一个单元格中。如果我使用line.split(),我得到一个TypeError,而不管我在括号中使用的是哪个分隔符。在

.exp中的源行(全部在一行上)如下所示: ***表示1.81015815887019969535E-003 1.7032095329860605954E-003 1.14996630243252558965E-003 1.1713999999985590871E-003 4.76889945457777955489E-003 4.557329296301687650E-003 3.993089089696827012E-002 2.08290735252988956563E-002 9.39393954542591474787E-001 9.52343403264 7777357335734E-001 1.729947734554494545E+000 2.52266266389393939393939393939393939393292938939393939393292929292929292929298456563E+000 3.8076954346734854e-0011.8291027001438267e+000 2.6616393017410958e+000 4.0608176179586236e-001 1.50829448806580E+000 2.1780140681796909E-001 1.4703089782231224e-001”

但是.csv中的输出不再有空格分隔;它都在第一个单元格中,而我希望“***”、“Mean”、“############################。在


Tags: 文件csvruntrueforlinecommentwrite
1条回答
网友
1楼 · 发布于 2024-04-20 01:00:08

现在很明显,在前面所有的elif中,您从列表中写入一个值,而在最后两个elif中,您尝试将整个列表写入文件。只能将字符串写入文件。再次将其转换为字符串:

outMCfile.write(','.join(line.split()))

或者更简单一点:

^{pr2}$

假设逗号是csv分隔符

相关问题 更多 >