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
请帮忙,我有一本字典,我需要将其写入一个 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