用Windows“记事本”创建一个文本文件,其中每行包含一段英文。试读出文件的全部内容,并判断: (1)该文本文件共有多少行? (2)文件中以大写字母P开头的有多少行? (3)一行中包含字符最多的和包含字符最少的分别在第几行?
时间: 2024-02-05 22:12:52 浏览: 179
以下是Python代码实现:
```python
# 打开文件
with open('filename.txt', 'r') as f:
lines = f.readlines() # 读取所有行
# 统计行数
num_lines = len(lines)
# 统计以P开头的行数
num_p_lines = 0
for line in lines:
if line.startswith('P'):
num_p_lines += 1
# 统计每行字符数,找到包含字符最多和最少的行
max_len = 0
min_len = float('inf')
max_line_num = 0
min_line_num = 0
for i, line in enumerate(lines):
line_len = len(line.strip()) # 去掉换行符后的长度
if line_len > max_len:
max_len = line_len
max_line_num = i + 1 # 从1开始计数
if line_len < min_len:
min_len = line_len
min_line_num = i + 1
# 输出结果
print("该文本文件共有", num_lines, "行")
print("文件中以大写字母P开头的有", num_p_lines, "行")
print("一行中包含字符最多的在第", max_line_num, "行,最少的在第", min_line_num, "行")
```
需要注意的是,在Windows的记事本中,每行的结尾是`\r\n`,而不是`\n`,因此需要用`strip()`方法去掉每行结尾的换行符。
阅读全文