我正在阅读一个文本文件,我试图删除除每行第一个字之外的所有内容。所以,在阅读文本文件后我正在做的是将其作为delimetre用空格分割,然后将这些单词存储在数组中。
现在,我对数组的计划是保存第一个单词,位于0的位置是文本文件中的新行。然后我将有一个文本文件,只包含我原始文件的第一个单词。
我遇到的麻烦是将数组[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()
答案 0 :(得分:4)
使用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')