我在 python 中编写了一个脚本,其中我从一些文件中提取了一些信息并将其传递到另一个文件中。
我有 2 个字典,其中包含一个类的元素列表,我想将列表的每个元素写入一个 .csv 文件。
当我尝试将数据写入文件时,它以一种奇怪的方式出现。我希望数据以这种方式出现:
Sample_3 45526536 7010285 31195850 7320401 45500691 7186449 31021951 7292291
Sample_1 48885783 7715654 33474067 7696062 48857972 7907873 33282945 7667154
但我得到的是这个结果:
Sample_3 ['45526536'] ['7010285'] ['31195850'] ['7320401'] ['45500691'] ['7186449'] ['31021951'] ['7292291']
Sample_1 ['48885783'] ['7715654'] ['33474067'] ['7696062'] ['48857972'] ['7907873'] ['33282945']['7667154']
有谁知道为什么要在数字中添加 [´´]?我尝试使用一种非常简单的方法来消除 [' '],但我不会在文件中打印任何内容。
def correct_str(value):
new= str(value).strip("['")
final= str(new).strip("']")
return final
这里是我在字典中添加元素的代码,字典是一个名为 stat_dict_l_u 的全局变量,名称是字典的键,在本例中为 Sample_1 和 Sample_2,列表值是包含的列表我从文件中得到的数字。我相信我的问题可能出在我将值添加到字典的方式上。
def processNumbersLeft(name,list_values):
list_reads=[]
for value in list_values:
print value.total_reads
list_reads.append(value.total_reads)
list_aligned_once=[]
for value in list_values:
n=re.split(" ",value.aligned_once)
list_aligned_once.append(n[0])
list_failed=[]
for value in list_values:
n=re.split(" ",value.failed)
list_failed.append(n[0])
list_aligned_several=[]
for value in list_values:
n=re.split(" ",value.aligned_several)
list_aligned_several.append(n[0])
stat_elem=Statistics(list_reads,list_aligned_once,list_failed,list_aligned_several)
stat_dict_l_u[name]=stat_elem
谢谢!
最佳答案
尝试使用这种情况:
def to_file(d):
return '\n'.join("%s %s" % (key, ' '.join(map(str, values))) for key, values in d.items())
使用:
>>> print to_file({'Sample_1': [1,2,3], 'Sample_2': [4,5,6]})
Sample_1 1 2 3
Sample_2 4 5 6
请注意,如果您需要大量处理 csv 文件,请使用有用的模块 csv .使用示例:
import csv
with open('eggs.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ', quoting=csv.QUOTE_MINIMAL)
for key, values in d.items():
spamwriter.writerow([key] + values)
这个例子正是你所需要的。更多信息请阅读 documentation .
关于python - 将带有列表的字典打印到文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12800836/