【文本文件读取】Python

【文本文件读取】
题目内容:用Windows“记事本”创建一个文本文件(文件名自定义),其中每行包含一段英文。
试读出文件的全部内容,并判断:
(1)该文本文件共有多少行?
(2)文件中以大写字母T开头的有多少行?
(3)一行中包含字符最多的和包含字符最少的分别在第几行?

【输入样例】:
例:记事本内容为:
A lot of people today are animal rights advocates.
Some of them are very
Passionate and even quite radical about the issue.
But others argue that “human rights” will always
Take priority. In fact, in many places even
the most basic human rights are not adequately
Protected. So why animal rights? What do you
think? And why?

【输出样例】:
这文本文件共有: 8 行
文件中以大写字母T开头的有 1 行
一行中字符最多的在第 1 行
一行中字符最少的在第 8 行

我们定义三个函数来实现
1.数行数

def line():
    f = open("文件所在路径",'r')
    lines = f.readlines()
    count = len(lines)
    print("这文本文件共有:",count,"行")

2.查首字母

def search():
    f = open("文件所在路径",'r')
    lines = f.readlines()
    n = 0
    for line in lines:
        if line[0] == 'T':
            n = n + 1
    print("文件中以大写字母P开头的有",n,"行")

3.读文件,查最多最少

def r():
    f = open("文件所在路径",'r')
    lines = f.readlines()
    l = []
    for i in lines:
            num = len(i.strip())
            l.append(num)
    print("一行中字符最多的在第",l.index(max(l)) + 1,"行")
    print("一行中字符最少的在第",l.index(min(l)) + 1,"行")

最后我们调用这三个函数

line()
search()
r()

在这里插入图片描述

import random  
FileName = 'C:/Users/Administrator/Desktop/Two.txt'
file = open(FileName,'r')

n= file.readlines()
#print(n)
print("这文本文件共有:",len(n),"行")

num = 0
for a in n:
    if a[0] == 'T':
        num = num + 1
print("文件中以大写字母T开头的有",num,"行")

l = []
for i in n:
    num = len(i.strip("\n"))
    l.append(num)
max_l=l.index(max(l))+1
min_l=l.index(min(l))+1
#print(l)
print("一行中字符最多的在第",max_l,"行")
print("一行中字符最少的在第",min_l,"行")
#with open("文件路径","读写方式")as 文件名
1.readlines() 方法用于读取所有行(直到结束符 EOF)并返回列表

2.strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。

3.str.index(str, beg=0, end=len(string))
index() 方法检测字符串中是否包含子字符串 str 
如果未指定, beg(开始) 和 end(结束)默认全部范围
如果包含子字符串返回开始的索引值
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值