24小时热门版块排行榜    

查看: 783  |  回复: 2

utility

木虫 (小有名气)

[求助] Python如何将一列数分成等间距的几列,并写入新文件已有1人参与

我是初学python,有个文件,一共20000行,每行1个数字,如何将这列数每隔100行写入下一列,最后再将每行的数求和,得到100行的一列数。

例如:

Python如何将一列数分成等间距的几列,并写入新文件
11.png
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
这个不麻烦,示例如下:

=============================================
oldfile = open('oldfile.txt', "r".read()
oldfile = oldfile.strip()
oldfile = oldfile.replace('\r\n', '\n')

vector  = oldfile.split('\n')
file2 = open('file2.txt', "w"
file3 = open('file3.txt', "w"

n = len(vector)
for i in range(100):
    row  = vector[i:n:100]
    line = '\t'.join(row)
    file2.write(line + '\n')
   
    line = sum(map(float, row))
    file3.write(str(line) + '\n')

file2.close()
file3.close()
=============================================
2楼2014-04-20 03:35:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alorsmail

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
utility: 金币+5, ★★★★★最佳答案, 非常感谢! 2014-04-21 08:57:15
oldfile = open('oldfile.txt', "r" ).read( )
oldfile = oldfile.strip( )
oldfile = oldfile.replace('\r\n', '\n' )

vector  = oldfile.split('\n' )

# for float data
# vector  = map(float, vector )

# for integer data
# vector  = map(int, vector )

file2 = open('file2.txt', "w" )
file3 = open('file3.txt', "w" )

n = len(vector )

for i in range(100 ):
    row  = vector[i:n:100]
    line = '\t'.join(row )
    file2.write(line + '\n' )
   
    line = sum(map(float, row ) )
    file3.write(str(line ) + '\n' )

file2.close( )
file3.close( )
3楼2014-04-20 03:36:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 utility 的主题更新
信息提示
请填处理意见