python解决实际问题

1.从给定的“sy06-01-zh.txt”文件中,读取文本,将中英文分开,中文部分存储到“ch_text.txt”文件中,英文部分将其中的大写字母变为小写字母,小写字母变为大写字母,然后存储到“en_text.txt”文件中。【参考代码行数:20行】
期望结果:

img

2.编写函数:给定一个目录后,统计该目录下所有文件的个数(不包含子目录)和所占磁盘空间的大小(以MB为单位)。【参考代码行数:12行】
期望结果:

img

img

望采纳


第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))