[英]numpy array writing to an existing file
我很困惑為什么這不想寫入輸出文件。 我使用np.loadtxt()
從 txt 文件中提取數據我嘗試寫入現有文件,但我收到此錯誤'numpy.float64' object is not iterable'
我不是循環遍歷浮點值,而是循環遍歷數組的每個元素,然后將其寫入現有文件。
這是我的代碼
mass = np.loadtxt('C:/Users/Luis/Desktop/data.txt',usecols=0)
with open('test','w') as outfile:
for i in range(len(mass)):
outfile.writelines(mass[i])
會不會是with open()
的函數不適用於 NumPy 數組? 謝謝
with open()
是一個上下文管理器,用於處理文件(適用於所有文件)。 writelines()
方法將str
作為輸入參數。 所以你必須轉換為writelines(str(mass[i]))
。 但是temp variable i
仍然在行上迭代,但它所取的max value
是文件的長度。(文件的長度可能不等於文件中每一行的長度)。 我想這就是你想要的。
mass = np.loadtxt('/content/sample_data/st.txt',usecols=0)
with open('test.txt','w') as outfile:
for line in mass:
outfile.writelines(str(line))
writelines
用於包含str
(Unicode 文本表示)的可迭代對象。 mass
必須是一維數組,因為mass[i]
是一個標量np.float64
,它是不可迭代的。 這就是writelines
引發該異常的原因。
您還需要將 NumPy 數組的dtype
轉換為字符串/文本以寫入文本文件。 numpy.savetxt
擅長為一維或二維數組做這件事。
with open("test.txt", "w") as f:
numpy.savetxt(f, mass)
但是請注意, "w"
模式會覆蓋現有文件,因此如果您只想附加數組數據,請使用"a"
模式。 請記住在附加的數組數據之間插入換行符"\\n"
或某種可識別的分隔符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.