使用python创建任意文件夹并进行批量复制转移

要求如下:
在 12-02-练习专用 目录下操作
1. 创建三个文件夹 [‘文件夹1’, ‘文件夹2’, ‘文件夹3’]
2. 每个文件夹中随机创建 5-10个.txt 文件,文件夹名用创建时的时间戳命名(延时 0.01 秒创建一个)
3. 每个文件夹中随机创建 5-10个.py 文件,文件夹名用创建时的时间戳命名
4. 将 .txt 文件全部复制到 12-02-txt 文件 目录中(没有就自己创建)
5. 将 .py 文件全部复制到 12-02-py 文件 目录中(没有就自己创建)

主要是练习python的os模块,并使用到time,shutil 等模块。

"""
    在 12-02-练习专用 目录下操作
    1. 创建三个文件夹 ['文件夹1', '文件夹2', '文件夹3']
    2. 每个文件夹中随机创建 5-10个.txt 文件,文件夹名用创建时的时间戳命名(延时 0.01 秒创建一个)
    3. 每个文件夹中随机创建 5-10个.py 文件,文件夹名用创建时的时间戳命名
    4. 将 .txt 文件全部复制到 12-02-txt 文件 目录中(没有就自己创建)
    5. 将 .py 文件全部复制到 12-02-py 文件 目录中(没有就自己创建)
"""
import os
# current_dir = os.getcwd()
# print(current_dir)
# print(os.path.abspath('12-02-练习专用'))
import random
import re
import shutil
import time

target_dir = os.path.abspath('12-02-练习专用')
os.chdir(target_dir)
for i in range(1, 4):
    if not os.path.exists(f'文件夹{i}'):
        os.mkdir(f'文件夹{i}')
# child_dirs = os.listdir() #如果这样写,如此时除了文件夹1/2/3 外,还有别的子文件夹,此时会把这些文件夹也算进child_dirs里面,后面会产生问题
# child_dirs = '\n'.join(child_dirs)
dir_name = re.compile(r'文件夹.*') #正则表达式匹配需要用到的文件夹
result_1 = dir_name.findall('\n'.join(os.listdir()))  #listdir结果为列表,join之后变为str,可以用于正则表达式匹配
child_dirs = []
child_dirs.extend(result_1)
# for child_dir in child_dirs:
#     for i in range(1,4):
#         if child_dir != f'文件夹{i}':
#             child_dirs.pop(child_dirs.index(child_dir))
print(child_dirs)

# 随机创建文件

#file_num = random.randint(5, 10)
for child_dir in child_dirs: #如果child_dirs 还包括别的文件夹,此时所有文件夹里都会随机产生文件
    if not os.listdir(child_dir): #如果子文件夹里为空,则创建文件
        for i in range(random.randint(5, 10)):
            filename = f'{int(time.time()) * 1000}.txt'
            current_time = f'It is {time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())}'
            open(os.path.join(child_dir,filename), mode = 'w', encoding='utf-8').write(current_time)
            time.sleep(1)
            python_file = f'{int(time.time()) * 1000}.py'
            open(os.path.join(child_dir, python_file), mode='w', encoding='utf-8').write(current_time)

txt_dir = "12-02-txt"
if not os.path.exists(txt_dir):
    os.mkdir(txt_dir)
py_dir = "12-02-py"
if not os.path.exists(py_dir):
    os.mkdir(py_dir)

txt_dir_path = os.path.abspath(txt_dir)
py_dir_path = os.path.abspath(py_dir)
print('txt_dir is:\t', txt_dir_path)

for child_dir in child_dirs:
    filename_list = os.listdir(child_dir)
    print(filename_list)
    child_dir = os.path.abspath(child_dir)
    for file_name in filename_list:
        if file_name.endswith('.txt'):
            shutil.copy(os.path.join(child_dir, file_name), txt_dir_path)
        if file_name.endswith('.py'):
            shutil.copy(os.path.join(child_dir, file_name), py_dir_path)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值