1.从给定的“sy06-01-zh.txt”文件中,读取文本,将中英文分开,中文部分存储到“ch_text.txt”文件中,英文部分将其中的大写字母变为小写字母,小写字母变为大写字母,然后存储到“en_text.txt”文件中。【参考代码行数:20行】
期望结果:
2.编写函数:给定一个目录后,统计该目录下所有文件的个数(不包含子目录)和所占磁盘空间的大小(以MB为单位)。【参考代码行数:12行】
期望结果:
望采纳
第1个任务
可以使用 Python 的内置函数 open()
打开文件,并使用 read()
或 readlines()
方法读取文件中的内容。然后,您可以使用 Python 的字符串处理函数来分离中英文部分,并将它们分别存储到两个文件中。
例如:
# 首先,打开给定的文件
with open('sy06-01-zh.txt', 'r') as f:
# 读取文件中的内容
content = f.read()
# 初始化两个空字符串,用来存储中文和英文部分
ch_text = ""
en_text = ""
# 循环遍历文件中的每个字符
for c in content:
# 如果当前字符是中文字符(根据 ASCII 码判断)
if ord(c) >= 0x4E00 and ord(c) <= 0x9FFF:
# 将该字符添加到 ch_text 字符串中
ch_text += c
else:
# 否则,将该字符添加到 en_text 字符串中
en_text += c
# 将 en_text 中的大写字母转换为小写字母,小写字母转换为大写字母
en_text = en_text.swapcase()
# 将 ch_text 和 en_text 存储到对应的文件中
with open('ch_text.txt', 'w') as f:
f.write(ch_text)
with open('en_text.txt', 'w') as f:
f.write(en_text)
第2个问题
可以使用 Python 的 os 模块来解决这个问题。首先,你需要使用 os.listdir() 函数来获取目录下的所有文件名列表。然后,可以循环遍历这个文件名列表,并使用 os.path.getsize() 函数来获取每个文件的大小,最后累加这些文件的大小并将它们转换为 MB 单位。
例如:
import os
# 给定的目录
directory = '/path/to/directory'
# 获取目录下的所有文件名
filenames = os.listdir(directory)
# 统计文件个数
file_count = len(filenames)
# 统计磁盘空间大小
total_size = 0
for filename in filenames:
# 获取文件的大小
size = os.path.getsize(os.path.join(directory, filename))
# 累加文件大小
total_size += size
# 将文件大小转换为 MB 单位
total_size_mb = total_size / (1024 * 1024)
# 输出结果
print('目录下共有 {} 个文件,所占磁盘空间大小为 {} MB'.format(file_count, total_size_mb))