Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在文本文件上写入列表的内容_Python_Text - Fatal编程技术网

Python 在文本文件上写入列表的内容

Python 在文本文件上写入列表的内容,python,text,Python,Text,我想把列表的内容写在一个文本文件上。 我目前的做法如下: for k in li: outp.write(str(k)) out.write('\n') 但是,这需要很长时间才能运行(我有数千万行) 有没有更快的办法 采样线 列表来自稀疏矩阵,因此有大量的零。非空元素仅为1 此类列表的示例:[0 0 0 0 0 1 0 1 1 0 0] 数字由制表符分隔您只需写一次,省去所有手动转换,就可以获得相当不错的速度: out.write('\n'.join(li)) 可能会有进一步的优化,

我想把列表的内容写在一个文本文件上。 我目前的做法如下:

for k in li:
    outp.write(str(k))
out.write('\n')
但是,这需要很长时间才能运行(我有数千万行)

有没有更快的办法

采样线

列表来自稀疏矩阵,因此有大量的零。非空元素仅为1

此类列表的示例:[0 0 0 0 0 1 0 1 1 0 0]


数字由制表符分隔

您只需写一次,省去所有手动转换,就可以获得相当不错的速度:

out.write('\n'.join(li))
可能会有进一步的优化,但实际上,对于具有如此大数组的内容,您应该考虑基于二进制的文件格式


具体来说,这似乎是一个很好的选择,但还有更快的方法。我想知道存储
1
s的坐标是否会产生所需的加速,正如您提到的,这是一个稀疏矩阵。考虑以下事项:

for k in li:
    outp.write(str(k))
out.write('\n')
写入文件:

def writeMatrix(matrix):
    ones = [[i for i,num in row if num==1] for row in matrix]
    with open('path/to/file', 'w') as outfile:
        for row in ones:
            outfile.write(' '.join(str(i) for i in row))
            outfile.write('\n')
从文件中读取:

def readMatrix(infilepath, width):
    answer = []
    with open(infilepath) as infile:
        for line in infile:
            row = [None]*width
            for i in set(int(i) for i in line.split()):
                row[i] = 1
            answer.append(row)
    return answer

它必须是人类可读的吗?i、 e.之后该文件的用途是什么?@doctor在文本文件read中选择yes请在列表中列出几行示例。我们也许能够利用数据的某些属性,“在文本文件中读取”是什么意思?如果机器读取,二进制(如pickle)可能会更快。然后你就不需要先把它变成一个字符串了。@bigTree那么你可能会对这个条目感兴趣:。写入磁盘的速度很慢。没有一条黄金法则可以用来加速它。但您可能会在那里发现一些优化…它输出一个错误,上面写着“类型错误:序列项0:预期的str实例,int found”