假设我有一个文件my_file
,我希望从中获得某些行,例如,其中每行输出都是一个列表元素。我试图理解如何控制和使用Python文件I/o操作
文件:
cat > my_file <<EOF
[Ignore_these]
abc
234
[Wow]
123
321
def
[Take_rest]
ghi
jkl
EOF
比如说,在第[Wow]行之后,我想合并整数行(可以是任意数量的行,这里我得到'123321'),忽略其余的行,直到我遇到[Take_rest],从那里我想要剩余的行('ghi'和'jkl')-[Take_rest]总是最后一部分。因此,结果输出为data = list('123321', 'ghi', 'jkl')
。
我尝试了以下类似的方法,但未能理解readline()
和next()
(etc)是如何工作的
def is_int(s):
try:
int(s)
return True
except ValueError:
return False
with open('my_file', 'r') as f:
data = []
while True:
line = f.readline()
if '[Wow]' in line:
wow = ''
while is_int(next(f)):
wow = ''.join([wow, line])
data.append(wow)
if '[Take_rest]' in line:
data.append(next(f))
if not line:
break
不要使事情复杂化-使用以下方法:
输出:
相关问题 更多 >
编程相关推荐