【发布时间】:2015-06-24 17:45:53
【问题描述】:
我正在浏览.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.8101587019969535e-003 1.7032095329860594e-003 1.1496630243258965e-003 1.1713999855908471e-003 4.7688994577955489e-003 4.5573296301687650e-003 3.9930890896827012e-002 2.0829073529889563e-002 9.3939542591824787e-001 9.5234032647735734e-001 1.7299477345544945e + 000 2.5226638938456563 E + 000 3.8076954346734854e-001 1.8291027001438267e + 000 2.6616393017410958e + 000 4.0608176179586236e-001 1.5082949448806580e + 000 2.1780140681716909e-001 1.4703089782231224e-001"
但.csv中的输出不再有空格分隔;它都在第一个单元格中,而我希望每个单元格都有自己的单元格。
【问题讨论】:
-
== True是多余的。也许发布那些引起麻烦的行之一? -
另一个挑剔:
outMCfile = open(...),'w'模式就足够了,因为你从来没有读过它。 -
感谢您的提示。 == True...我在 Python 中仍然处于笨拙的水平,一直在寻找更精简的技巧。这就是导致问题的原因,特别是:
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") -
您能否举例说明感兴趣的案例的线条?
-
您尝试过 newline = summary.split() 并使用换行符吗?
标签: python python-2.7 csv