文件及文件夹操作 ① 统计“sucai”所包含的文件个数 ② 逐一输出“sucai”所包含的文件的绝对路径 ③ 将“sucai”所包含的文件名称最长的文件夹中所有文件复制到文件名称最短的文件夹中。python代码
时间: 2024-12-19 09:19:06 浏览: 5
在Python中,我们可以使用`os`模块来进行文件和文件夹的操作。这里是一个示例代码来完成你提到的任务:
```python
import os
# 1. 统计"sucai"目录下包含的文件个数
dir_path = "sucai"
file_count = len(os.listdir(dir_path))
print(f"Directory '{dir_path}' contains {file_count} files.")
# 2. 逐一输出"sucai"目录下文件的绝对路径
for filename in os.listdir(dir_path):
abs_path = os.path.join(dir_path, filename)
print(f"Absolute path of file '{filename}': {abs_path}")
# 3. 获取文件名称最长和最短的文件夹,并将最长文件夹中的所有文件复制到最短文件夹
longest_folder = max(os.scandir(dir_path), key=lambda x: len(x.name)) if dir_path else None
shortest_folder = min(os.scandir(dir_path), key=lambda x: len(x.name)) if dir_path else None
if longest_folder and shortest_folder:
src_dir = longest_folder.path
dst_dir = shortest_folder.path
for src_file in os.listdir(src_dir):
src_abs_file = os.path.join(src_dir, src_file)
dst_abs_file = os.path.join(dst_dir, src_file)
try:
shutil.copy2(src_abs_file, dst_abs_file)
print(f"Copied file '{src_file}' from {src_dir} to {dst_dir}.")
except Exception as e:
print(f"Failed to copy file '{src_file}'. Error: {e}")
else:
print("No valid folders found in 'sucai'.")
```
注意:这段代码假设你已经安装了`shutil`库用于文件复制,如果没有安装,可以使用`pip install shutil`命令进行安装。另外,`os.scandir()`更推荐于`os.listdir()`因为前者效率更高并能避免遍历隐藏文件。
阅读全文