python-3.x - 用于读取文件并打印是否存在感兴趣行的 Python 脚本
问题描述
我编写了一个简单的 python 脚本来读取不同文件中不以“#”开头的行并打印出来。如果没有没有“#”的行,则应打印为“无行”。每行之间没有空行。
文件1:
#Name
Raphl
#last
文件2:
#Name
#last
我想打印以“#”开头的行
f=['file1.txt', 'file2.txt']
l=[]
for files in f:
f1=open(files, 'r')
for lines in f1:
if not lines.startswith('#'):
l.append(lines)
if len(l)>0:
print ("file name:",files)
print ("Interested line:",lines)
if len(l)==0:
print ("file name with empty lines:",'No lines')
对于 file1 它打印Raphl
但对于 file2 它不打印No lines
。谢谢!
解决方案
读取第一个文件时,您的代码会在l
. 然后,在读取第二个文件时,l
长度已经为 1。
要解决此问题,您需要定义l
每次读取文件的时间。
更新:另外,您需要等待程序遍历所有行。您可以通过更改 if 语句的缩进来做到这一点。我已经更新了程序,它现在应该可以工作了。
f=['file1.txt', 'file2.txt']
for files in f:
f1=open(files, 'r')
l=[] # Each time a file is read, `l` is reset to an empty list
for line in f1:
if not line.startswith('#'):
l.append(line)
if len(l)>0:
print ("file name:",files)
print ("Interested line:",line)
if len(l)==0:
print ("file name with empty lines:",'No lines')
推荐阅读
- python - 使用 boto3 创建帐户后如何通过电子邮件自动邀请 IAM 用户?
- javascript - 反应 setState 以更新对象
- amazon-web-services - 如何在 AWS Fargate Kubernetes 集群中部署 Keycloak
- asp.net-core-2.1 - .NET Core Tag Helper - 在调用 GetChildContentAsync 时延迟呈现另一个标签助手的内容中的标签助手
- mysql - 关于 neo4j 和 mySQL 的差异
- php - 查询失败:SQLSTATE [3D000]:目录名无效:1046 未选择数据库
- python - 使用 selenium 登录然后使用 URLLIB 运行代码?
- apache-kafka - 使用 Node.js + Kafka 为消费者组创建分布式消费者
- python - While 循环自动更新以前的列表值
- asp-classic - 使用经典 ASP 从另一个页面读取所有元素