我正在尝试一段时间迭代字符串列表并删除字符串的第一个单词,方法是将字符串的剩余部分附加到另一个列表中,这就是我写的内容:
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)
一切似乎都存在,但我收到语法错误......我错过了什么?
提前致谢!
答案 0 :(得分:1)
有两种语法错误。首先,这一行中缺少右括号:
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
我认为这就是你想要的。
答案 1 :(得分:-1)
这是工作代码: -
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