40,000 개의 항목이있는 사전이 있습니다. 그 키는 DNA 이름이고 값은 DNA 시퀀스입니다. 사전을 각 파일에 10,000 개의 항목이있는 40 개의 텍스트 파일로 나누고 싶습니다.사전에서 여러 개의 파일을 파이썬으로 작성하는 방법
여기 내 코드는 다음과 같습니다
record_dict # my DNA dictionary
keys_in_dict #the list of the keys
for keys in keys_in_dict:
outhandle = open("D:\\Research\\Transcriptome_sequences\\input{0}.fasta".format (?????), "w")
나는 (?????)
대신에 어떤 내용을 포함해야합니까? 이 루프는 어떻게 끝내나요?
업데이트 : 안녕하세요. 도움 주셔서 감사합니다. 이제 사전에서 여러 파일을 만들 수 있습니다. 그러나 먼저 사전을 만드는 대신 원본 파일에서 직접 여러 파일을 만들려고 할 때 문제가있었습니다. 코드는 첫 번째 항목이있는 파일 하나만 생성합니다. 나는 무엇을 잘못 했는가? 그것은 가장 빠른 해결책이 될 수 없습니다
from Bio import SeqIO
handle = open("D:/Research/Transcriptome_sequences/differentially_expressed_genes.fasta","rU")
filesize = 100 # number of entries per file
filenum = 0
itemcount = 0
for record in SeqIO.parse(handle, "fasta") :
if not itemcount % filesize:
outhandle = open("D:/Research/Transcriptome_sequences/input{0}.fasta".format(filenum), "w")
SeqIO.write(record, outhandle, "fasta")
filenum += 1
itemcount += 1
outhandle.close()
각 키'keys'에 해당하는 값을 얻는 방법을 묻는 중입니까? 그것은 단지'record_dict [keys]'입니다. (또한, 각 키를 보유하고있는 변수의 이름을 한 번에 하나씩, 복수의'keys '로 오인하는 것은 잘못된 것 같습니다 ...) – abarnert
참고로 사전의 키 목록은 거의 필요하지 않습니다. 'for key in record_dict :'를 반복하면된다. 또는'record_dict.items() :'의 key, value를 위해 반복 할 수 있고 루프 안에서'record_dict [key]'를 할 필요가 없습니다. – abarnert
감사합니다, abarnert. 간단히 말하면, 400,000 개의 항목이있는 큰 파일이 있고이 파일을 각 작은 파일에 10,000 개의 항목이있는 40 개의 작은 파일로 나누고 싶습니다. – Gray