(no subject)
Jan. 31st, 2011 01:49 pmБлин-блин-блин
Не могу разобраться, как сделать экспорт результатов рассчетов в Питоне в текстовый файл.
***
Я хочу, чтобы:
1) ВСЕ
2) СРАЗУ
3) КРАСИВО
***
Я дослушала двенадцатую лекцию в курсе (всего их 24), и после этого зависла и стала мучительно выбирать - то ли продолжить слушать, то ли начать сначала. Но сейчас пробежалась глазами по аннотациям следующих лекций (а в книгах я последнюю страницу всегда любила больше всех других) и поняла, что надо слушать дальше - безвариантно. Уж больно любопытные вещи там обещают.
Не могу разобраться, как сделать экспорт результатов рассчетов в Питоне в текстовый файл.
***
Я хочу, чтобы:
1) ВСЕ
2) СРАЗУ
3) КРАСИВО
***
Я дослушала двенадцатую лекцию в курсе (всего их 24), и после этого зависла и стала мучительно выбирать - то ли продолжить слушать, то ли начать сначала. Но сейчас пробежалась глазами по аннотациям следующих лекций (а в книгах я последнюю страницу всегда любила больше всех других) и поняла, что надо слушать дальше - безвариантно. Уж больно любопытные вещи там обещают.
no subject
Date: 2011-01-31 01:01 pm (UTC)Если численные - то лучше не на питоне, а на R. Там есть готовые модули для любой красивости.
Если символьные (выравнивания и тп), то надо думать...
no subject
Date: 2011-01-31 01:27 pm (UTC)no subject
Date: 2011-01-31 02:24 pm (UTC)Может это с операционной системой как-то связано? Скажем пример кода взят для Unix, а запускается под Windows, или наоборот?
no subject
Date: 2011-01-31 03:20 pm (UTC)no subject
Date: 2011-01-31 03:22 pm (UTC)no subject
Date: 2011-01-31 03:32 pm (UTC)К тому же в Р все сухо и технично - вставляешь один файл, получаешь другой. Без любви, в общем. А Питон меня заботливо спрашивает - что за ген, сколько образцов...
no subject
Date: 2011-01-31 03:04 pm (UTC)Кот в студии, помидорами не кидаться
Date: 2011-01-31 03:29 pm (UTC)writer = csv.writer(open("RT.csv"))
gene = raw_input('Which gene do you want to analyze? ')
number_samples = input('How many samples do you have? ')
rna = []
rna_str = []
a1 = 1
#make list of RNA concentrations
for j in range(number_samples):
a1 = float(raw_input('enter RNA conc: '))
rna.append(a1)
rna_str.append(str(a1))
j +=1
rna_conc = min(rna)*11 #rna_conc is amount of RNA that will go into reaction
b = [] #b is volume of RNA that will go into reaction for each sample
b_str = []
for i in range (len(rna)):
b.append(rna_conc/rna[i])
b_str.append(str(round(rna_conc/rna[i], 2))) #convert into string
print gene
print 'RNA concentration, ng/ul', rna_str
print 'RNA volume, ul', b_str
water = [] #amount of water that will go into reaction for each sample
water_str = []
for i in range (len(rna)):
water.append(11-b[i])
water_str.append(str(round((11-b[i]), 2)))
print 'H20, ul', water_str
print rna_conc, 'ng RNA in reaction'
writer.writerow(gene)
writer.writerow('RNA concentration (ng/ul)')
writer.writerow(str(rna))
writer.writerow('RNA volume')
writer.writerow(b_str)
writer.writerow('Water volume')
writer.writerow(water_str)
writer.writerow(str(rna_conc))
writer.writerow('ng RNA in reaction')
Вот на первом же writer.writerow он выпадает в осадок. Файл с нужным названием у него в папке есть (если файла нет, то он сразу жалуется).
Re: Кот в студии, помидорами не кидаться
Date: 2011-01-31 03:36 pm (UTC)writer = csv.writer(open("RT.csv", "wb"))
no subject
Date: 2011-01-31 03:40 pm (UTC)Жаловаться перестал, но в файл ничего не написал.
*шепотом* а что такое "wb"?
no subject
Date: 2011-01-31 03:41 pm (UTC)no subject
Date: 2011-01-31 03:48 pm (UTC)В мануале на эту тему есть только вот
import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerows(someiterable)
но я решила, что раз они не объясняют, что такое "wb", то я его писать не буду!
попробую что ли еще погуглить
no subject
Date: 2011-01-31 03:52 pm (UTC)>>> import csv
>>> spamWriter = csv.writer(open('eggs.csv', 'wb'), delimiter=' ',
... quotechar='|', quoting=csv.QUOTE_MINIMAL)
>>> spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
>>> spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
воспроизводится?
no subject
Date: 2011-01-31 04:06 pm (UTC)При этом он не жалуется, что у него файла в директории нет, он его сам туда записывает, но файл пустой.
no subject
Date: 2011-01-31 04:13 pm (UTC)2. Если не создает - вероятно, проблема с правами доступа
3. Если создает - попробуй заменить флаг wb на w
Keep me posted)
no subject
Date: 2011-01-31 04:20 pm (UTC)НО
Такое впечатление, что он не завершает тот процесс, который у него идет (написания в файл), потому что пока я не перезапущу процесс в питоне, я не могу удалить файл - он используется.
no subject
Date: 2011-01-31 04:33 pm (UTC)Кажется, вот здесь описан рецепт против твоей беды: http://stackoverflow.com/questions/3896228/python-csv-file-is-empty-after-using-csv-writer
no subject
Date: 2011-01-31 04:57 pm (UTC)Дело за маленьким - понять, что это было :)))
no subject
Date: 2011-01-31 07:03 pm (UTC)no subject
Date: 2011-01-31 08:35 pm (UTC)no subject
Date: 2011-01-31 09:19 pm (UTC)К свойствам csvWriter-а это отношения не имеет, csvWriter — это просто объект, который осуществляет запись, а с точки зрения csvOut это ничем не отличается от случая, при котором запись делается непосредственно из программы.
no subject
Date: 2011-01-31 08:19 pm (UTC)no subject
Date: 2011-01-31 08:34 pm (UTC)В окне – забор, к которому привык.
И вот гляжу с нервической улыбкой,
как пишет непристойность ученик,
причем с орфографической ошибкой.
Понятно все! Встречал я и не раз
на партах мат в одном и том же стиле.
И пусть не врет, что это – первый класс!
Там букву «п» еще не проходили!
Е. Лукин "Педагогическая поэма"
no subject
Date: 2011-01-31 08:53 pm (UTC)no subject
Date: 2011-01-31 11:45 pm (UTC)no subject
Date: 2011-02-01 07:04 am (UTC)no subject
Date: 2011-01-31 03:34 pm (UTC)rna<-read.table("rna.txt", sep="\t", dec=".", h=F)
amount_rna <- (min(rna$V2))*11
volume_rna <- round((amount_rna/(rna$V2)), 2)
volume_water <- 11 - volume_rna
reaction <- data.frame(siRNA = rna$V1, rna_conc=rna$V2, rna_volume = volume_rna, water_volume = volume_water)
write.table(file="RT_reaction.txt", sep="\t", reaction, dec=",")