IDと値を持つ複数の* .txtファイルがあり、一意の辞書を作成したい。しかし、いくつかのファイルではいくつかのIDが繰り返されていますが、そのIDについては値を連結したいと思っています。これは2つのファイルの例です(しかし、私はglob.globが必要だと思うので、私はたくさんのファイルを持っています):(特定のファイル内のすべての '値'が同じ長さを持つので、 ' - 'をLEN(値)が欠落している何回複数のテキストファイルから辞書マッピングを作成する
ファイル1
ID01
Hi
ID02
my
ID03
ni
ファイル2
ID02
name
ID04
meet
ID05
your
欲望出力:(なしの繰り返しIDがない場合、私は追加したいことに注意してください " Na 'または' - '、連結するlen(値))これは私の出力です:
ID01
Hi----
ID02
myname
ID03
ni----
ID04
--meet
ID05
--your
出力を辞書に保存したいだけです。さらに、私はファイルが開いているときに印刷するかどうか、私はどちらのファイルが他のファイルの後に開かれているのかを知ることができましたか? 「 - 」時にIDが繰り返されていません(私はこれまでのところ、私の値を連結することはできません)
output={}
list = []
for file in glob.glob('*.txt'):
FI = open(file,'r')
for line in FI.readlines():
if (line[0]=='I'): #I am interested in storing only the ones that start with I, for a future analysis. I know this can be done separating key and value with '\t'. Also, I am sure the next lines (values) does not start with 'I'
ID = line.rstrip()
output[ID] = ''
if ID not in list:
list.append(ID)
else:
output[ID] = output[ID] + line.rstrip()
if seqs_name in list:
seqs[seqs_name] += seqs[seqs_name]
print (file)
FI.close()
print ('This is your final list: ')
print (list) #so far, I am getting the right final list, with no repetitive ID
print (output) #PROBLEM: the repetitive ID, is being concatenated twice the 'value' in the last file read.
はまた、どのように追加するには:
これは私が持っているものでしょうか?私はあなたの助けに大変感謝します。
要約:別のファイルでキーが繰り返されるときに値を連結できません。そしてキーが繰り返されない場合は、 ' - 'を追加したいので、後でファイル名を印刷して、特定のIDに値がないファイルを知ることができます。
ok、あなたの新しいバージョンは動作しています:)どうもありがとうございます! – gusa10
値が連結されていないときに ' - 'または 'Na'を追加するとどうなりますか? – gusa10
@ gusa10スレッドごとに1つの質問;)助けがあれば、これを受け入れることができます。 Naを追加するには、テキストを取得し、テキストがIDで始まるかどうかを確認する必要があります。つまり、実際のテキストが欠落しています。 –