python - 循环遍历文本行直到出现字符串 // 并将所有内容写入单独的列表中
问题描述
我想遍历文本,并且每次出现 aG[i]
或H[i]
出现时,我希望代码将其下的内容写入自己的单独列表中,直到字符串//
出现,然后继续下一个。
到目前为止,这是我的代码:
ladida=[]
with open('D:/G2.txt') as f:
namen = ("G","H")
listencounter=0
for line in f:
if any(s in line for s in namen):
listex=line.rstrip()
ladida.append(listex)
print(ladida)
name=[]
Name=[]
with open('D:/G2.txt') as f:
for i in range(len(ladida)):
Name.append(name)
for line in f:
if ladida[i] in line:
for line in iter(lambda: f.readline().rstrip(),'//'):
extracted_line = line
extracted_list = extracted_line.split(",")
X = extracted_list[0]
print(Name[i])
Name[i].append(X)
然而,它只将 G3 Part 三次写入一个列表。
这是我的文本文件:
G3
0.0, 0.0, 0.0
53.50805, 19.475337, 0.0
102.458385, 37.291802, 0.0
149.937529, 54.572797, 0.0
196.472482, 71.510135, 0.0
242.662047, 88.321762, 0.0
287.744278, 104.730352, 0.0
331.155303, 120.530673, 0.0
368.926371, 134.278218, 0.0
//
G4
1.0, 1.0, 1.0
53.50805, 19.475337, 0.0
102.458385, 37.291802, 0.0
149.937529, 54.572797, 0.0
196.472482, 71.510135, 0.0
242.662047, 88.321762, 0.0
287.744278, 104.730352, 0.0
331.155303, 120.530673, 0.0
368.926371, 134.278218, 0.0
//
H1
2.0, 2.0, 2.0
53.50805, 19.475337, 0.0
102.458385, 37.291802, 0.0
149.937529, 54.572797, 0.0
196.472482, 71.510135, 0.0
242.662047, 88.321762, 0.0
287.744278, 104.730352, 0.0
331.155303, 120.530673, 0.0
368.926371, 134.278218, 0.0
//
解决方案
有很多方法可以做到这一点。例如,您可以执行以下操作:
with open('D:/G2.txt','r') as f:
ls=f.read().split('\n//\n')
for e in range(len(ls)-1):
if ls[e].startswith(('G','H')):
ls[e]=ls[e][1+len(str(e))+1:].replace('\n',',').replace(' ','').split(',')
else:
del ls[e]
print(ls)
输出:每个块都是这个列表中的一个列表:
[['0.0', '0.0', '0.0', '53.50805', '19.475337', '0.0', '102.458385', '37.291802', '0.0', '149.937529', '54.572797', '0.0', '196.472482', '71.510135', '0.0', '242.662047', '88.321762', '0.0', '287.744278', '104.730352', '0.0', '331.155303', '120.530673', '0.0', '368.926371', '134.278218', '0.0'], ['1.0', '1.0', '1.0', '53.50805',...]]
快乐编码!
PS:对于您的下一个问题:请提供一个您希望避免误解的确切输出示例。
推荐阅读
- python-3.x - 较小的 LSTM 输入更改会破坏学习
- regex - grep 最后一次出现的单引号内的子字符串
- python - Photutils 源检测不适用于小图片,适用于大图片,为什么?
- c# - “SendKeys ctrl + v”到windows和linux?
- python - 缩进级别定义块的语言语法的 BNF 示例?
- jquery - 使用 ajax 下载 .net core 生成的 pdf 文件
- reactjs - 等待 componentDidMount 中的 redux 道具
- python - Python Pandas:从另一个数据帧更新数据帧值
- sql-server - 向用户授予 CREATE/ALTER 权限
- java - Internet Explorer 上的 Java 小程序应用程序未加载