程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了从#1comment 到#2nd 逐行读取文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决从#1comment 到#2nd 逐行读取文件?

开发过程中遇到从#1comment 到#2nd 逐行读取文件的问题如何解决?下面主要结合日常开发的经验,给出你关于从#1comment 到#2nd 逐行读取文件的解决方法建议,希望对你解决从#1comment 到#2nd 逐行读取文件有所启发或帮助;

我想读取、解析 .txt 文件并将其保存在变量中。在第一条评论#a 到#~~结束之后到变量a 然后对于var b:在评论#b 之后阅读直到评论#~~ 等等。

#a
  60   8   10
  12  30   12
#~~
#b  
14 2
30 12
#~~
#c
 40 14 

with open("file.txt") as f:
    for line in f:
         li = line.strip()
         if li.startswith("#a"):
    

解决方法

我可能只是将整个文件读入 Python,然后使用 re.findall 查找所有注释:

inp = """#a
  60   8   10
  12  30   12
#~~
#b  
14 2
30 12
#~~
#c
 40 14
#~~"""

matches = re.findall('#(\\w+)\s+(.*?)#~~\s*',inp,flags=re.DOTALL)
print(matches)

打印:

[('a','60   8   10\n  12  30   12\n'),('b','14 2\n30 12\n'),('c','40 14\n')]

代替我上面的硬编码数据,使用以下内容从您的实际文件中读取:

file = open("file.txt")
inp = file.read()
file.close()

编辑:

如果你只想保留评论数据本身,而不是标签,那么通过推导将二维列表缩减为一维列表:

matches = re.findall('#(\\w+)\s+(.*?)#~~\s*',flags=re.DOTALL)
output = [j for (i,j) in matches]
print(output)

打印:

['60   8   10\n  12  30   12\n','14 2\n30 12\n','40 14\n']

大佬总结

以上是大佬教程为你收集整理的从#1comment 到#2nd 逐行读取文件全部内容,希望文章能够帮你解决从#1comment 到#2nd 逐行读取文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: