将 Python 结果保存为 .txt 文件
Posted
技术标签:
【中文标题】将 Python 结果保存为 .txt 文件【英文标题】:Saving Python Results as .txt File 【发布时间】:2020-08-16 15:47:41 【问题描述】:我有这个代码 (unique_set=np.random.choice([0, 1], (10000, 10, 10, 10))
) 可以生成 10000 个 3D 二进制矩阵,我正在尝试将结果保存为 .txt 文件。我检查的其他类似问题要么试图将打印语句写入文件,要么明显不同。我尝试了很多类似下面的解决方案,但都没有奏效。
sys.stdout = open("test.txt", "w")
print(unique_set)
sys.stdout.close()
【问题讨论】:
您到底想将什么保存到文本文件中? 4 维列表没有自然表示。为什么要使用文本文件? 我不想将其保存为 4D 列表。我希望将所有 10000 个 3D 矩阵保存在文本文件中(逗号分隔)。就是这样。 【参考方案1】:试试这个
import numpy as np
file = open('D:\\yourpath\\filename.txt', 'w')
unique_set=np.random.choice([0, 1], (10000, 10, 10, 10))
file.write('%s\n' %unique_set)
【讨论】:
没看懂你在说什么,请贴出完整代码,方便解决问题 只是出于好奇,这段代码返回的数字是什么意思? (编译时返回一个数字) 返回的数字 上次是 5 位数字,但随着我更改矩阵的属性,它似乎发生了变化。【参考方案2】:不知道输出文件的格式应该是什么样子,这是一种可能性:
np.savetxt("test.txt", unique_set.flatten(), delimiter=",")
【讨论】:
ValueError: 预期 1D 或 2D 数组,改为 4D 数组 AttributeError: 'list' 对象没有属性 'flatten' 那么您必须使用一种非常特殊的编程语言,其中 4 维 numpy 数组实际上是一个普通的 python 列表...从您的问题中并不清楚 感谢您的热心帮助!【参考方案3】:您可以存储为 JSON 文本文件(保留为 4D 数组) --storing Numpy N dimensional arrays
import json
with open('"test.txt"', 'w') as f:
json.dump(unique_set.tolist(), f)
【讨论】:
AttributeError: 'list' 对象没有属性 'tolist' @AmirChamanara--你指定unique_set=np.random.choice([0, 1], (10000, 10, 10, 10))
了吗?是这样的,unique_set 是一个 numpy 数组,我们正在使用它的 tolist 方法reference。这会将 4D 数组结构保存为嵌套列表。如果你只想要一个一维数组的值,那么使用 MSpiller 答案,它使用 unique_set.flatten() 的 np.savetext。注意 unique_set.flatten() 也取决于这是一个 numpy 数组。
@AmirChamanara——你从print(type(unique_set))
得到什么?如果应该是<class 'numpy.ndarray'>
。以上是关于将 Python 结果保存为 .txt 文件的主要内容,如果未能解决你的问题,请参考以下文章
从python字典如何将键和值保存到* .txt文件[关闭]