蟒蛇;将字典和额外参数写入txt文件

时间:2017-09-25 17:50:47

标签: python

我有一个脚本通过计算文件中的模式来生成python字典,并在文件的计数结果之前写入文件名(basename)和标题(安静的大代码,我认为这对于问题无关紧要)。

print(basename, header, counts)

计数的输出是模式和值。

我的输出如下:

filename1 header1 {'pattern1': 1, 'pattern2': 2}
filename1 header2 {'pattern3': 2, 'pattern4': 1}
filename2 header1 {'pattern5': 3, 'pattern6': 1}

我想将模式和计数写入txt文件,其中包含每个字典键和值的文件名和标题,用空格分隔,如下所示

    filename1 header1 pattern1 1
    filename1 header1 pattern2 2
    filename1 header2 pattern3 2 
    filename1 header2 pattern4 1
    filename2 header1 pattern5 3
    filename2 header1 pattern6 1

但我不知道如何实现这一目标。有人可以帮我编写输出这样的命令吗?

2 个答案:

答案 0 :(得分:0)

在你拥有arr=( 1 2 3 4 5 6 7 8 9 ) for ((i=0; i<${#arr[@]}; i+=2)); do echo "${arr[i]}"; done 1 3 5 7 9 的循环中,只需在字典上添加另一个循环。

print(basename, pattern, counts)

for loop...: # not sure what it looks like for k, v in counts.items(): print(basename, pattern, k, v) counts.items()python3使用counts.iteritems()

答案 1 :(得分:0)

你可以这样做:

for item in counts:
    print(basename, header, item, counts[item])

另外,你可以在一行中做到这一点,但这有点棘手;)

print(basename, header, '\n%s %s '.join([(" ".join([str(lst),str(counts[lst])])) for lst in counts]) %(basename, header))