首页 > 解决方案 > 如何将字典写入文本文件,其中包含 Python 中字典中每个元素的列

问题描述

我正在尝试使用以前从 matlab 生成的工作区来创建一个输入文本文件,以供另一个程序读取。我可以将工作区作为字典导入 Python,没有任何问题。由于字典中不同的数据类型和不同大小的数组,从这里我很难写入文本文件。我希望字典中的每个字段在文本文件中都有自己的列,但运气不佳。这是从 matlab 导入的字典的屏幕截图。 在此处输入图像描述

我希望文本文件具有这种格式。(标题不是必需的) 在此处输入图像描述

我能够使用以下代码将其中一个变量放入文本文件中,但是我无法添加更多变量或具有不同数据类型的变量。

import csv
import scipy.io
import numpy as np
#import json
#import _pickle as pickle
#import pandas as pd

mat = scipy.io.loadmat('Day055.mat')
#print(type(mat))
#print(mat['CC1'])
CC1 = mat['CC1']
CC2 = mat['CC2']
DP1 = mat['DP1']
#print(CC1)
#print(CC2)

dat = np.array([CC1, DP1])
dat =dat.T

#np.savetxt('tester.txt', dat, delimiter = '\t')
np.savetxt('tester.txt', CC1, delimiter = '\t')

'''
with open('test.csv', 'w') as f:
    writer = csv.writer(f)
    for row in CC1:
        writer.writerow(row)
#print(type(CC1))

#print("CC1=", CC1)
#print("first entry to CC1:", CC1[0])
mat = {'mat':mat}

df = pd.DataFrame.from_dict(mat)
print(df)

print(type(mat))

x=0

with open('inputDay055.txt', 'w') as file:
    for line in CC1:
        file.write(CC1[x])
        #file.write("\t".join(map(str, CC2))+"\n")
    #file.write(pickle.dumps(mat))
        x=x+1
'''

print("all done")

如您所见,我也尝试了几种不同的方法,但是当我不成功时将它们注释掉。

标签: pythonpandasdictionaryfile-writing

解决方案


推荐阅读