将数组写为字符串(python 3)

时间:2017-07-11 00:57:08

标签: python python-3.x

我正在尝试将整个数组写为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'。所以这并没有解决问题。有什么建议吗?

2 个答案:

答案 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才能将字符串写入文件。