python - 读取两行的值并用python写入一行

标签 python file

我有一个这种格式的文件:

611    2856     618    2582   94075   94107   94065   94068
101071   94104
598    2856     618     611   93995   94107   93992   93991
94075   94065
612    2834    2821    2812   94087  101577   94085   94081
101558  101557

我需要阅读这些行并重写它们:

611    2856     618    2582   94075   94107   94065   94068 101071   94104
598    2856     618     611   93995   94107   93992   93991 94075   94065
612    2834    2821    2812   94087  101577   94085   94081 101558  101557

我试过这样的:

f2 = open('new_file.txt', 'w')
    f1 = open('old_file.txt')
    lines = f1.readlines()
    for i, line in enumerate(lines):    
        print(repr(line))               
        f2.write(line)
        i = i+1
    f1.close()
f2.close()

但是它不工作,因为它每行都重新写入。我需要阅读两行并将它们写在一行中。 有什么建议吗?

最佳答案

您不需要将行读入列表,也不需要弄乱行号,您可以直接遍历文件行:

with open('oldfile.txt') as fin, open('newfile.txt', 'w') as fout:
    for line in fin:
        fout.write(line[:-1] + ' ' + next(fin))    

newfile.txt 的内容

611    2856     618    2582   94075   94107   94065   94068 101071   94104
598    2856     618     611   93995   94107   93992   93991 94075   94065
612    2834    2821    2812   94087  101577   94085   94081 101558  101557

line[:-1] + ' '

删除长行末尾的换行符,并用一个空格代替;我很确定这比 line.replace('\n', ' ') 快,但我还没有计时。

与 Graipher 的解决方案一样,如果文件有偶数行,则不会复制最后一行,但我认为这对您的数据来说不是问题。 p>

关于python - 读取两行的值并用python写入一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41828949/

相关文章:

java - 如何将字符串变量插入文件路径?

python - 如何设计一个神经网络从数组中预测数组

python将多行中的单词提取到1个列表中

Python:如何按列遍历列表列表,就好像它是一个普通的二维数组(矩阵)一样?

java - Android ENOENT 与一些文件

c - c中的文件处理操作

python - EPD Python 和 MacPorts Python 可以在 OS X (matplotlib) 上共存吗?

python subprocess.call bash 命令,具有进程替换和文件重定向功能

c - 我如何从这个文本文件中读取城市名称和坐标?

php - 没有MySQL可以在网站内搜索任何单词吗?