我正在尝试迭代字符串列表并删除字符串的第一个单词,方法是将字符串的其余部分附加到另一个列表中,这是我写的:
from sys import argv
my_file = argv[1]
output_list = []
count = 1
with open(my_file) as input_file:
for line in input_file.readlines():
while count < len(line.split(' '):
ouput_list.append(line.split(' ')[count])
count += 1
count = 0
with open('out_file.txt', 'w') as output_file:
for line in output_list:
output_file.write(line)
一切似乎都到位了,但是我遇到了语法错误...我错过了什么?
提前感谢!
有两个语法错误。首先,此行中缺少一个右括号:
while count < len(line.split(' '):
其次,您在此行中拼错了output_list
:
ouput_list.append(line.split(' ')[count])
除此之外,您的代码似乎在逻辑上存在缺陷,因为它删除了单词之间的所有空格。
如果您的目标是删除文件的第一个单词及其周围的空格,同时保持其他所有内容不变,那么这两行应该可以解决问题:
text = open(my_file).read()
text = re.sub('^s*w+s*', '', text)
它也可以写在一行中,但为了清楚起见,我更喜欢两行。
您将需要re
模块,因此您的完整程序将如下所示:
import sys, re
my_file = sys.argv[1]
text = open(my_file).read()
text = re.sub('^s*w+s*', '', text)
with open('out_file.txt', 'w') as output_file:
output_file.write(text)
如果使用此输入文件:
ant bear cat
dog elephant
你将得到以下输出:
bear cat
dog elephant
我想这就是你想要的。
这是工作代码:-
from sys import argv
my_file = argv[1]
output_list = []
count = 1
with open(my_file) as input_file:
for line in input_file.readlines():
while count < len(line.split()):
output_list.append(line.split()[count])
count += 1
count = 0
with open('out_file.txt', 'w') as output_file:
for line in output_list:
output_file.write(line+'n') # should write in new line