python 文件处理格式

python file-handling formatting

请帮忙,我有一本字典,我需要将其写入一个 txt 文件,我需要更改 dic 的格式,以便在我写入新文件时可以在下面获得所需的输出。谢谢!

我的字典:

sdata = {'A': [1, 2, 3, 4], 'B': [128, 118], 'C': [5, 6, 7], 'D': [1, 3, 4]}

当前输出:

{'A': [1, 2, 3, 4], 'B': [128, 118], 'C': [5, 6, 7], 'D': [1, 3, 4]}

如何以下面的格式而不是上面的格式将其保存到文件中?

期望的输出:

 A, 1 2 3 4
 
 B, 128 118
 
 C, 5 6 7
 
 D, 1 3 4

以下是我的代码:

def saveAndExit(sdata, x, r):
    outFileName = "updated.txt"
    outfile = open(outFileName, "w")
    print (f'Content of xxx after updated {x} was added to key{r}:')
    print (f'Content of xxx after updated {x} was added to key{r}:',file=outfile)
    print (sdata) # wrong format
    print (sdata, file=outfile)
    outfile.close()

下面应该做你想做的:

for key, value in sdata.items():
    print(key + ", " + " ".join(str(v) for v in value))

这会产生以下结果:

A, 1 2 3 4
B, 128 118
C, 5 6 7
D, 1 3 4

如果要double-space输出,每行数据之间有空行(如post所示),只需添加:

print()

进入循环。

我会在 print 中使用解包运算符 (*) 以获得所需的结果,方法如下:

sdata = {'A': [1, 2, 3, 4], 'B': [128, 118], 'C': [5, 6, 7], 'D': [1, 3, 4]}
for key, value in sdata.items():
    print(f'{key},', *value, end='\n\n')

输出:

A, 1 2 3 4

B, 128 118

C, 5 6 7

D, 1 3 4

提供“\n\n”作为最终结果以获取空行。

试试这个:

print('\n\n'.join("%s, %s" % (k,str(sdata[k]).strip("[]").replace(",","")) for k in sdata.keys()))

以上内容将确保键从括号和逗号中删除。如果你愿意,你可以省略那些。

输出:

A, 1 2 3 4

B, 128 118

C, 5 6 7

D, 1 3 4