我正在尝试将整个数组写为text或csv文件。
az login
az account set --subscription "mySubscriptionID"
az group create -n "myResourceGroupName" -l "westus"
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/mySubscriptionID/resourceGroups/myResourceGroupName"
此代码的问题是它写为二进制文件。我想写成字符串,以便它可读。可以逐行创建循环和写入文件,但真正的问题在from array import array as pyarray
import csv
tmp1 = (x for x in range(10))
tmp2 = (x+10 for x in range(10))
arr1 = pyarray('l')
with open ('fileoutput','wb') as fil1:
for i in range(10):
val = next(tmp1) - next(tmp2)
arr1.append(val)
arr1.tofile(fil1)
中有数百万行。什么是以人类可读形式书写的优化方式?
修改
将上面的代码行更改为arr1
,即with open ('fileoutput','w') as fil1:
更改为'wb'
后,会出现错误:
'w'
。所以这并没有解决问题。有什么建议吗?
答案 0 :(得分:0)
您以wb
模式打开了文件。这用二进制写。以w
模式写入文件,将其写为字符串。
with open ('fileoutput','w') as fil1:
答案 1 :(得分:0)
您可以尝试将结果附加到字符串,然后将其保存到文件中,如下所示:
from array import array as pyarray
tmp1 = (x for x in range(10))
tmp2 = (x+10 for x in range(10))
arr1 = pyarray('l')
fileoutput_str = str(arr1)+'\n'
for i in range(10):
val = next(tmp1) - next(tmp2)
fileoutput_str += str(val)+'\n'
fileoutput_fn = 'fileoutput'
fileoutput_fo = open(fileoutput_fn, 'w')
fileoutput_fo.write(fileoutput_str)
fileoutput_fo.close()
您必须删除二进制选项b
才能将字符串写入文件。