打开并阅读输入文件后,我试图将输入拆分为不同的字符。尽管我似乎得到了一个我不想要的嵌套列表,但效果很好。我的列表看起来不像[[list]]
,而是像["[list]"]
。我在这里做错了什么?
输入看起来像这样:
name1___1 2 3 4 5
5=20=22=10=2=0=0=1=0=1something,something
name2___1 2 3 4
2=30=15=8=4=3=2=0=0=0;
输出看起来像这样:
["['name1", '', '', "1 2 3 4 5', 'name2", '', '', "1 2 3 4']"]
这是我的代码:
file = open("file.txt")
input_of_this_file = file.read()
a = input_of_this_file.split("\n")
b = a[0::2] # so i get only the even lines
c = str(b) # to make it a string so the .strip() works
d = c.strip() # because there were whitespaces
e = d("_")
print e
如果我那么做:
x = e[0]
我得到:
['name1
这会删除外部列表,但也会删除最后一个]
。
我希望它看起来像:name1, name2
这样我才得到名字。
答案 0 :(得分:0)
使用itertools.islice
和列表理解。
>>> from itertools import islice
>>> with open("tmp.txt") as f:
... [line.rstrip("\n").split("_") for line in islice(f, None, None, 2)]
...
[['name1', '', '', '1 2 3 4 5'], ['name2', '', '', '1 2 3 4']]
答案 1 :(得分:0)
保持代码语法不导入:
c=[]
input_of_file = '''name1___1 2 3 4 5
5=20=22=10=2=0=0=1=0=1something,something
name2___1 2 3 4
2=30=15=8=4=3=2=0=0=0;'''
a = input_of_file.split("\n")
b = a[::2]
for item in b:
new_item = item.split('__')
c.append(new_item)
结果
c = [['name1', '_1 2 3 4 5'], ['name2', '_1 2 3 4']]
c[0][0] = 'name1'