首页 Python基础入门视频教程 文件和文件夹操作-os模块-实战案例
pay pay

文件和文件夹操作-os模块-实战案例

日期: 2021年11月21日 00:54
阅读: 236
作者: Python自学网

摘要: 文件和文件夹操作-os模块-实战案例

1.复制一个文件内容到另一个文件

import os
os.chdir('open-case')  # 切换到对应目录下
from_file = open('aa.txt', 'r', encoding='utf-8')  # 打开aa文件
to_file = open('bb.txt', 'a', encoding='utf-8')  # 打开bb文件
content = from_file.read()  # 读取aa文件中内容
to_file.write(content)  # 把内容写入bb文件
from_file.close()
to_file.close()

2.上面的案例如果文件过大,采取分段读取的方式来解决

from_file = open('aa.txt', 'r', encoding='utf-8')  # 打开aa文件
to_file = open('bb.txt', 'a', encoding='utf-8')  # 打开bb文件
# content = from_file.read()  # 读取aa文件中内容
# to_file.write(content)  # 把内容写入bb文件
while True:
    content = from_file.read(1024)
    if len(content) == 0:
        break
    to_file.write(content)

from_file.close()
to_file.close()

3.案例一

# 1.获取所有文件名列表
import os
os.chdir('open-case')  # 这里加上目录定位,下面就要写当前文件夹
file_list = os.listdir('./')  # 如果再写open-case,就是指open-case下的open-case
# 2.遍历所有文件名称
#     2.1.分解文件的后缀名(获取最后一个点的位置)
for name in file_list:
    print(name)
    index = name.rfind('.')
    # 如果文件夹下有目录,那么就不存在上面的点,这里要做一个容错处理
    if index == -1:
        continue
    print(index)
#     2.2.根据最后一个点的索引位置,以这个位置为起始点,来截取后面的字符串
    last_name = name[index + 1:]
    print(last_name)
# 3.查看是不是存在同名的目录
# 4.如果不存在直接创建一个同名目录
    import shutil  # 提供移动文件功能
    if not os.path.exists(last_name):
        os.mkdir(last_name)
    shutil.move(name, last_name)  # 把文件移动到新创建的目录

4.案例二

# 4.使用递归函数生成一个文件清单
import os
# 4.os+os.path文件目录操作模块.chdir('open-case')
def file_list(dir):
    files = os.listdir(dir)  # 1.列举出当前文件夹下的所有文件和子目录
    # print(files)
    for file in files:  # 2.把列举出来的列表进行遍历
        new_filename = dir + '/' + file  # 把文件或者文件夹目录进行拼接一下,防止传入参数不是当前目录
        if os.path.isdir(new_filename):  # 3.判定的目录还是文件
            print(new_filename)
            file_list(new_filename)  # 使用递归函数深层挖掘
        else:
            print('\t' + file)  # 4.打印文件名称
    print('')  # 加个换行

file_list('open-case')

 

部分文字内容为Python自学网原创作品,转载请注明出处!视频内容已申请版权,切勿转载!
回顶部