Saya menelusuri direktori file .exp
, mengambil info yang saya inginkan dari masing-masing file, lalu mengkompilasinya menjadi file .csv
. itu tidak elegan, tapi ini dia:
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()
dua kondisi terakhir dalam loop for
(baris yang dimulai dengan "Cycle
" dan "***
") lebarnya 22-32 kolom (ada yang indeks, ada yang float). Bagaimana cara membatasi hasilnya? Saya baru saja mendapatkan serangkaian angka panjang di CSV keluaran saya untuk setiap baris tersebut, semuanya di sel yang sama. Dan jika saya menggunakan line.split()
, saya mendapatkan TypeError
terlepas dari pembatas mana yang saya gunakan dalam tanda kurung.
Baris sumber (ini semua dalam satu baris) di .exp terlihat seperti: "*** Mean 1.8101587019969535e-003 1.7032095329860594e-003 1.1496630243258965e-003 1.1713999855908471e-003 4.76 88994577955489e-003 4.5573296301687650e-003 3.9930890896827012e- 002 2.0829073529889563e-002 9.3939542591824787e-001 9.5234032647735734e-001 1.7299477345544945e+000 2.5226638938456563e+000 2,17 80140681716909e-001 1.4703089782231224e-001"
Namun output di .csv tidak lagi memiliki pemisahan spasi; semuanya ada di sel pertama, sedangkan saya ingin "***", "Mean", "#####...","####..." masing-masing memiliki selnya sendiri.
== True
tidak berguna. Mungkin memposting salah satu baris yang menimbulkan masalah? - person wardk   schedule 24.06.2015outMCfile = open(...)
,'w'
sudah cukup karena Anda tidak pernah membacanya. - person ivan_pozdeev   schedule 24.06.2015elif line.startswith('Cycle') == True: labels = line outMCfile.write(labels) outMCfile.write("\n") elif line.startswith('***') == True: summary = line outMCfile.write(summary) outMCfile.write("\n")
- person ksmith   schedule 24.06.2015elif line.startswith('***') == True: summary = line outMCfile.write(summary) outMCfile.write("\n")
Saya mendapatkan ini di keluaran .csv: Mean 1.8101587019969535e-003 1.7032095329860594e-003 1.1496630243258965e-003 1.1713999855908471e-003 4.76889 94577955489e-003 4.5573296301687650e-003...dst. semuanya sebagai satu rangkaian angka yang berkesinambungan dalam sel yang sama. Saya lebih suka tidak perlu menentukan ulang bagaimana batasnya ketika saya akhirnya membukanya di excel nanti (maaf, ini sulit untuk ditampilkan di sini...) - person ksmith   schedule 24.06.2015.readliness
+line.strip()
-›for line in (line.strip() for line in <file>)
; 2) gunakan modulcsv
. - person ivan_pozdeev   schedule 24.06.2015