我正在阅读一个文本文件,并且试图擦除除每行第一个单词以外的所有内容。因此,在读取文本文件后,我正在做的工作是将其以空格分隔,然后将单词存储在数组中。

现在,我对数组的计划是将第一个单词(位置0处的内容)另存为文本文件中的新行。然后,我将获得一个文本文件,其中仅包含原始文件的第一个单词。

我遇到的麻烦是将array [0]写入新文本文件中的新行,然后保存该文本文件。如何在Python 2.7中做到这一点?

到目前为止,这是我的代码。我不知道该怎么做的部分只是一个评论。

import sys
import re

read_file = open(sys.argv[1]) #reads a file

for i in iter(read_file): #reads through all the lines one by one

    k = i.split(' ') #splits it by space

    #save k[0] as new line in a .txt file

#save newly made text file
#close file operations

read_file.close()

最佳答案

使用with语句处理文件,因为它会自动为您关闭文件。

而不是使用file.read,您应该遍历文件迭代器本身,因为它一次返回一行,这将提高内存效率。

import sys
with open(sys.argv[1]) as f, open('out.txt', 'w') as out:
    for line in f:
       if line.strip():                     #checks if line is not empty
           out.write(line.split()[0]+'\n')

08-26 21:17
查看更多