创建一个文本文件“学号.txt”,要求如下: ①文件行数:随机,取值范围为 10~20; ②每行字符数:随机,取值范围为 10~30; ③ 字符:随机大写字符。
时间: 2023-11-22 21:53:47 浏览: 38
好的,以下是 Python 代码实现:
```python
import random
# 随机生成文件行数和每行字符数
num_lines = random.randint(10, 20)
num_chars = [random.randint(10, 30) for _ in range(num_lines)]
# 随机生成大写字符
upper_chars = [chr(random.randint(65, 90)) for _ in range(sum(num_chars))]
# 写入文件
with open('学号.txt', 'w') as f:
curr_index = 0
for i in range(num_lines):
line = ''.join(upper_chars[curr_index:curr_index+num_chars[i]])
f.write(line + '\n')
curr_index += num_chars[i]
```
这段代码会随机生成行数和每行字符数,并生成相应数量的大写字符,最后将这些字符写入到文件“学号.txt”中。
相关问题
编写程序,读取文本文件“学号.txt”,要求: ①统计文件的行数; ②统计每个字母出现的次数。
下面是Python的代码实现:
```python
filename = "学号.txt"
# 统计文件行数
with open(filename, "r", encoding="utf-8") as f:
lines = f.readlines()
count_lines = len(lines)
print("文件行数为:", count_lines)
# 统计每个字母出现的次数
char_count = {}
with open(filename, "r", encoding="utf-8") as f:
for line in f:
for char in line:
if char.isalpha():
char_count[char] = char_count.get(char, 0) + 1
print("每个字母出现的次数为:")
for char, count in char_count.items():
print(char, ":", count)
```
代码分为两部分:
第一部分统计文件行数,使用 `readlines()` 方法读取文件内容,返回一个列表,列表中每个元素为文件中的一行。使用 `len()` 函数统计行数。
第二部分统计每个字母出现的次数,使用 `for` 循环遍历文件中的每一行,再使用另一个 `for` 循环遍历每个字母。使用 `isalpha()` 方法判断是否是字母,如果是则将字母加入字典中,并对应的计数器加一。最后遍历字典输出每个字母出现的次数。
文件score.txt内容如下:010203 805090每行是学号和分数。设计一个脚本fitsh,输出其中不及格分数低于60)的行。
可以使用grep命令来实现该功能,具体命令如下:
```
grep " [0-5][0-9]$ \| 60$" score.txt
```
解释:
- grep:Linux中用来搜索指定文本的命令。
- " [0-5][0-9]$ \| 60$":正则表达式,表示匹配以空格开头,后面跟着两位数字,最后以0-5之间的数字或60结尾的行。
- score.txt:要搜索的文件名。
该命令会输出score.txt中所有不及格分数低于60的行。