<p>你可以试试这个:</p>
<pre><code>import re
def read_data(file_name):
data = open(file_name).read()
keys = [filter(lambda x:bool(x), i)[0][1:-1] for i in re.findall("{(.*?)\:|(?<=,\n\s)(.*?)\:", data)]
values = [filter(lambda x:bool(x), i)[0][1:-1] for i in re.findall('(?<=:\s)(.*?)(?=,\n)|(?<=\s)(.*?)(?=})', data)]
final_data = {a:b for a, b in zip(keys, values)}
return final_data
</code></pre>
<p>输出:</p>
<pre><code>{'Read1': 'GGCTCCCCACGGGGTACCCATAACTTGACAGTAGATCTCGTCCAGACCCCTAGC', 'Read3': 'GTCTTCAGTAGAAAATTGTTTTTTTCTTCCAAGAGGTCGGAGTCGTGAACACATCAGT', 'Read2': 'CTTTACCCGGAAGAGCGGGACGCTGCCCTGCGCGATTCCAGGCTCCCCACGGG', 'Read5': 'CGATTCCAGGCTCCCCACGGGGTACCCATAACTTGACAGTAGATCTC', 'Read4': 'TGCGAGGGAAGTGAAGTATTTGACCCTTTACCCGGAAGAGCG', 'Read6': "'Read6': 'TGACAGTAGATCTCGTCCAGACCCCTAGCTGGTACGTCTTCAGTAGAAAATTGTTTTTTTCTTCCAAGAGGTCGGAGT"}
</code></pre>
<p>编辑:</p>
<pre><code>import ast
def read_data(file_name):
final_data = ast.literal_eval(open(file_name).read())
return final_data
</code></pre>
<p>编辑1:关于删除括号,只需通过索引访问值:</p>
<pre><code>final_answer = {a:b[0] for a, b in answer.items()}
print(final_answer)
</code></pre>
<p>如果打印从<code>read_data</code>返回的值时遇到问题,可以尝试以下方法:</p>
<pre><code>answer = read_data("the_file.txt")
print(answer)
</code></pre>
<p>编辑3:</p>
<pre><code>def read_data(file_name):
with open(file_name, "r") as document:
answer = {}
for line in document:
line = line.split()
if line:
answer[line[0]] = line[1:]
return {a:b[0] for a, b in answer.items()}
print(read_data("sequencing_reads.txt"))
</code></pre>