迭代一个字符串列表,并将所有字符串附加到另一个字符串,除了第一个字
我尝试了一段时间迭代字符串列表并删除字符串的第一个字,通过追加剩余的串到另一个列表,这里就是我写道:迭代一个字符串列表,并将所有字符串附加到另一个字符串,除了第一个字
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
如果你解释了你改变了什么以及为什么 – jonrsharpe 2014-11-21 14:18:24
@jonrsharpe感谢(3)你错过了右括号,正如我在评论中所提到的'len(line.split())'和这里'ouput_list.append'它的'ouput_list'这个名字是错误的,你最好使用split() ('')'并将数据插入新行或空格中,所以'output_file.write(line +'\ n')'或'output_file.write(line +'\ t')' – 2014-11-21 14:22:28
...在答案中。 – jonrsharpe 2014-11-21 14:44:23
至少告诉我们您做了什么语法错误。 – 2014-11-21 14:02:55
你错过了关闭'len(line.split('')'关闭它,并且在你的rog中你也有其他问题 – 2014-11-21 14:07:02