• 使用python操作文件和文件夹


    文件操作的作用:

    把一些内容(数据)存储起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力。
    文件操作步骤:
    1.打开文件
    2.读写操作
    3.关闭文件 (释放内存)
    1. #1.打开
    2. f = open('test.txt','w')
    3. #2.读写操作
    4. f.write('aaa')
    5. #3.关闭(close)
    6. f.close()
    注意:可以直达开和关闭文件,不进行任何读写操作。

    打开

    使用open函数,可以打开一个已经存在的文件,或者创建一个新的文件。
    open(name,mode)
    name:要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
    mode:设置打开文件的模式(访问模式):只读、写入、追加等。

    访问模式

    1、read()

    文件对象.read(num)
    注意:num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么表示读取 文件中所有的数据。
    1. f = open('test.txt','r')
    2. #read不写参数表示读取所有
    3. # print(f.read())
    4. print(f.read(10))
    注意:文件内容如果换行,底层有\n,会有字节占位,导致read书写参数读取出来的眼睛看到的个数和参数值不匹配

    2、readlines()

    readlines可以 按照行的方式把整个文件的内容进行一次性读取, 并且返回的是一个列表,其中 每一行的数据为一个元素
    1. f = open('test.txt','r')
    2. content = f.readlines()
    3. print(content)  #['aaabbb\n', 'zzzzzz\n', 'zzzzzz\n', 'aaabbb\n', 'zzzzzz\n', 'zzzzzz']
    4. f.close()

    3、readline()

    一次读取一行内容
    1. f = open('test.txt','r')
    2. content = f.readline()
    3. print("第一行:",content)
    4. content = f.readline()
    5. print("第二行:",content)
    6. content = f.readline()
    7. print("第三行:",content)
    8. # 此次类推.....
    9. f.close()

    部分访问模式区别案例

    1. #r+ : r没有改文件则报错;文件指针在开头,所以能读取出来数据
    2. # f = open('txt.txt','r+') #当文件不存在则报错
    3. #f = open('test.txt','r+')
    4. # w+ : 没有该文件会新建文件 ; w特点:文件指针在开头,用新内容覆盖原内容
    5. # f = open('test1.txt','w+')  #当文件不存在,会新建一个空文件
    6. # f = open('test.txt','w+') #当文件存在,则会覆盖文件原内容
    7. #a+  #当文件不存在,会新建一个空文件  文件指针在结尾,无法读取数据(文件指针后面没有数据)
    8. # f = open('test100.txt','a+') #当文件不存在,会新建一个空文件
    9. f = open('test.txt','a+')
    10. con = f.read()
    11. print(con)
    12. f.close()

    seek()

    作用:用来移动文件指针。
    语法如下:
    文件对象.seek(偏移量,起始位置)    #0开头  #1当前  #结尾
    起始位置:
    • 0:文件开头
    • 1:当前位置
    • 2:文件结尾

    用法示例:

    1. f = open('test.txt','r+')
    2. #1.改变文件指针位置:改变读取数据开始位置或把文件指针放结尾(无法读取数据)
    3. #1.改变数据开始位置
    4. # f.seek(1,0)
    5. #2.把文件指针放结尾
    6. # f.seek(0,2)
    7. con = f.read()
    8. print(con)
    9. f.close()

    文件备份

    需求:用户输入当前目录下任意文件名,程序完成对该文件的备份功能(备份文件名为XX[备份]后缀,例如:test[备份].txt)
    步骤:
    1.接受用户输入的文件名
    old_name = input(请输入您要备份的文件名:")
    2.规划备份文件名
    2.1提取目标文件名后缀
    2.2组织备份的文件名,XX【备份】后缀
    3.备份文件写入数据
    案例:
    1. #1.用户输入的目标文件
    2. old_name = input("请输入您要备份的文件名:")
    3. # print(old_name)
    4. #2.规划备份文件的名字
    5. #2.1 提取后缀 -- 找到名字中的点 -- 名字和后缀分离--最右侧的点才是后缀的点 -- 字符串查找某个字串rfind
    6. index = old_name.rfind('.')
    7. # print(index)
    8. #2.2 组织新名字 = 原名字 + 【备份】 + 后缀
    9. #原名字就是字符串
    10. # print(old_name[:index])
    11. # print(old_name[index:])
    12. new_name = old_name[:index] + '[备份]' + old_name[index:]
    13. print(new_name)
    14. #3.备份文件写入数据(数据和源文件一样)
    15. #3.1 打开 源文件 和 备份文件
    16. old_f = open(old_name,'rb')
    17. new_f = open(new_name,'wb')
    18. #3.2 原文件读取,备份文件写入
    19. while True:
    20.     con = old_f.read(1024)
    21.     if len(con) == 0:
    22.         break
    23.     new_f.write(con)
    24. #3.3 关闭文件
    25. old_f.close()
    26. new_f.close()

    文件夹和文件的操作

    导入os模块
    import os
    重命名
    os.rename('目标文件','新文件名')
    删除文件
    os.remove('目标文件名')

    创建文件夹

    os.mkdir('aa')
    删除文件夹
    os.rmdir('aa')
    返回当前所在目录
    print(os.getcwd())
    改变目录路径
    os.chdir('gyq') #切换到gyq目录
    获取目录列表
    listdir() #获取目录列表

    重命名文件夹
    os.rename('目标文件夹','新文件夹名')

    使用示例:

    1. import os
    2. # #1. rename() 重命名
    3. # os.rename('test100.txt','10.txt')
    4. #
    5. # #2.remove() 删除文件
    6. # os.remove('./aa/111.py')
    7. #3. mkdir() 创建文件夹
    8. # os.mkdir('aa')
    9. #4.rmdir() : 删除文件夹
    10. # os.rmdir('aa')
    11. #5. getcwd():返回当前所在目录路径
    12. print(os.getcwd())
    13. #6.改变目录路径
    14. # os.mkdir('gyq')
    15. #需求:在gyq里面创建bbb文件夹:1.切换目录到gyq,2.创建bbb
    16. # os.chdir('gyq') #切换到gyq目录
    17. # os.mkdir('bbb') #然后创建bbb
    18. #7. listdir() #获取目录列表  括号若为空则显示当前文件夹内所有文件
    19. print(os.listdir("gyq"))
    20. #8. rename() -- 重命名文件夹  把gyq重命名为bb
    21. os.rename('gyq','bb')

    应用案例:

    批量修改文件名,既可添加指定字符串,又能删除指定字符串。
    1.设置添加字符串的标识
    2.获取指定目录的所有文件
    3.将原有文件名添加/删除指定字符串,构造新名字
    4.os.rename()重命名
    #需求:把当前文件夹内所有文件重命名  Python_xxx
     
    1. import os
    2. #构造条件的数据
    3. flag = 2
    4. #1.找到所有文件:获取当前文件夹的目录列表 -- listdir()
    5. file_list = os.listdir()
    6. print(file_list)
    7. #2.构造名字
    8. for i in file_list:
    9.     if flag == 1:
    10.         #new_name = 'Python_' + 源文件i
    11.         new_name = 'Python_' + i
    12.     elif flag == 2:
    13.         #删除前缀
    14.         num = len('Python_')
    15.         new_name = i[num:]
    16. #3.重命名
    17.     os.rename(i,new_name)
    注意:如果执行失败报了这个错误
    ileNotFoundError: [WinError 3] 系统找不到指定的路径。: '.idea' -> ''
    可能是因为.idea文件夹造成的,把它删除即可

     

  • 相关阅读:
    Java学习多态之向下转型
    C++ Reference: Standard C++ Library reference: C Library: cstdio: rewind
    Html5+Css3第一讲:html5+Css3基础(2)
    前端面试官会问的问题
    港联证券:哪家证券公司开户好?
    web中间件漏洞-Redis漏洞未授权访问漏洞-写webshell、写ssh公钥
    二维数组——onenote笔记
    关于反向竞价的6个常见误解,采购一定要知道
    Java 性能优化实战高级进阶:JIT 如何影响 JVM 的性能?
    计算机视觉与深度学习-Transformer-【北邮鲁鹏】
  • 原文地址:https://blog.csdn.net/gyqailxj/article/details/127824864