遍历字符串列表,并将所有字符串追加到另一个字符串(第一个单词除外)



我正在尝试迭代字符串列表并删除字符串的第一个单词,方法是将字符串的其余部分附加到另一个列表中,这是我写的:

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

最新更新