zoukankan      html  css  js  c++  java
  • python之文件操作

    python之文件操作

    一.⽂件的基本操作

    1.1 ⽂件操作步骤

    1. 打开⽂件
    2. 读写等操作
    3. 关闭⽂件
    注意:可以只打开和关闭⽂件,不进⾏任何读写操作。

    1.1.1 打开

    在python,使⽤open函数,可以打开⼀个已经存在的⽂件,或者创建⼀个新⽂件,语法如下:
    open(name, mode)
    name:是要打开的⽬标⽂件名的字符串(可以包含⽂件所在的具体路径)。
    mode:设置打开⽂件的模式(访问模式):只读、写⼊、追加等。
    1.1.1.1 打开⽂件模式
    1.1.1.2 快速体验
    f = open('test.txt', 'w')
    注意:此时的 f 是 open 函数的⽂件对象。

    1.1.2 ⽂件对象⽅法

    1.1.2.1 写
    • 语法
    对象对象.write('内容')
    •  体验
    # 1. 打开⽂件
    f = open('test.txt', 'w')
    # 2.⽂件写⼊
    f.write('hello world')
    # 3. 关闭⽂件
    f.close()
    • 注意:
    1. w 和 a 模式:如果⽂件不存在则创建该⽂件;如果⽂件存在, w 模式先清空再写⼊, a 模式直接末尾追加。
    2. r 模式:如果⽂件不存在则报错。
    1.1.2.2 读
    • read()
    ⽂件对象.read(num)
    num表示要从⽂件中读取的数据的⻓度(单位是字节),如果没有传⼊num,那么就表示读取⽂件中所有的数据。
    • readlines()
    readlines可以按照⾏的⽅式把整个⽂件中的内容进⾏⼀次性读取,并且返回的是⼀个列表,其中每⼀⾏的数据为⼀个元素。
    复制代码
    f = open('test.txt')
    content = f.readlines()
    # ['hello world
    ', 'abcdefg
    ', 'aaa
    ', 'bbb
    ', 'ccc']
    print(content)
    # 关闭⽂件
    f.close()
    复制代码
    • readline()
    readline()⼀次读取⼀⾏内容。
    复制代码
    f = open('test.txt')
    content = f.readline()
    print(f'第⼀⾏:{content}')
    content = f.readline()
    print(f'第⼆⾏:{content}')
    # 关闭⽂件
    f.close()
    复制代码

    1.1.3 关闭

    ⽂件对象.close()

    二. ⽂件备份

    需求:⽤户输⼊当前⽬录下任意⽂件名,程序完成对该⽂件的备份功能(备份⽂件名为xx[备份]后缀,例如:test[备份].txt)。

    2.1 步骤

    1. 接收⽤户输⼊的⽂件名
    2. 规划备份⽂件名
    3. 备份⽂件写⼊数据

    2.2 代码实现

    1. 接收⽤户输⼊⽬标⽂件名
    old_name = input('请输⼊您要备份的⽂件名:')

    2. 规划备份⽂件名
      2.1 提取⽬标⽂件后缀
      2.2 组织备份的⽂件名,xx[备份]后缀
    复制代码
    # 2.1 提取⽂件后缀点的下标
    index = old_name.rfind('.')
    # print(index) # 后缀中.的下标
    # print(old_name[:index]) # 源⽂件名(⽆后缀)
    # 2.2 组织新⽂件名 旧⽂件名 + [备份] + 后缀
    new_name = old_name[:index] + '[备份]' + old_name[index:]
    # 打印新⽂件名(带后缀)
    # print(new_name)
    复制代码
    3. 备份⽂件写⼊数据
      3.1 打开源⽂件 和 备份⽂件
      3.2 将源⽂件数据写⼊备份⽂件
      3.3 关闭⽂件
    复制代码
    # 3.1 打开⽂件
    old_f = open(old_name, 'rb')
    new_f = open(new_name, 'wb')
    # 3.2 将源⽂件数据写⼊备份⽂件
    while True:
     con = old_f.read(1024)
     if len(con) == 0:
         break
     new_f.write(con)
    # 3.3 关闭⽂件
    old_f.close()
    new_f.close()
    复制代码

     2.3 思考

    如果⽤户输⼊ .txt ,这是⼀个⽆效⽂件,程序如何更改才能限制只有有效的⽂件名才能备份?
    答:添加条件判断即可。
    复制代码
    old_name = input('请输⼊您要备份的⽂件名:')
    index = old_name.rfind('.')
    if index > 0:
     postfix = old_name[index:]
    new_name = old_name[:index] + '[备份]' + postfix
    old_f = open(old_name, 'rb')
    new_f = open(new_name, 'wb')
    while True:
     con = old_f.read(1024)
     if len(con) == 0:
         break
     new_f.write(con)
    old_f.close()
    new_f.close()
    复制代码

    三. ⽂件和⽂件夹的操作

    在Python中⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能,具体步骤如下:

    1. 导⼊os模块

    import os

    2. 使⽤ os 模块相关功能

    os.函数名()

    3.1 ⽂件重命名

    os.rename(⽬标⽂件名, 新⽂件名)
    import os 
    os.rename("test.txt","text001.txt")

    3.2 删除⽂件

    os.remove(⽬标⽂件名)

    3.3 创建⽂件夹

    os.mkdir(⽂件夹名字)

    3.4 删除⽂件夹

    os.rmdir(⽂件夹名字)

    3.5 获取当前⽬录

    复制代码
    os.getcwd()
    import os 
    f=os.getcwd()
    print(f)
    复制代码

    3.6获取⽬录列表

    复制代码
    os.listdir(⽬录)
    import os 
    path = "./"
    file=os.listdir(path)
    print(file)
    复制代码

    四.应⽤案例

    需求:批量修改⽂件名,既可添加指定字符串,⼜能删除指定字符串。
    • 步骤
    1. 设置添加删除字符串的的标识
    2. 获取指定⽬录的所有⽂件
    3. 将原有⽂件名添加/删除指定字符串,构造新名字
    4. os.rename()重命名
    • 代码
    复制代码
    import os
    # 设置重命名标识:如果为1则添加指定字符,flag取值为2则删除指定字符
    flag = 1
    # 获取指定⽬录
    dir_name = './'
    # 获取指定⽬录的⽂件列表
    file_list = os.listdir(dir_name)
    # print(file_list)
    # 遍历⽂件列表内的⽂件
    for name in file_list:
     # 添加指定字符
     if flag == 1:
         new_name = 'Python-' + name
     # 删除指定字符
     elif flag == 2:
         num = len('Python-')
         new_name = name[num:]
     # 打印新⽂件名,测试程序正确性
     print(new_name)
     
     # 重命名
     os.rename(dir_name+name, dir_name+new_name)
    复制代码

    五. 总结

    • ⽂件操作步骤
    打开
    ⽂件对象 = open(⽬标⽂件, 访问模式)
    操作
    ⽂件对象.read()
    ⽂件对象.readlines()
    ⽂件对象.readline()
    ⽂件对象.write()
    • seek()
    关闭
    ⽂件对象.close()
    主访问模式
    • w:写,⽂件不存在则新建该⽂件
    • r:读,⽂件不存在则报错
    • a:追加
    ⽂件和⽂件夹操作
    • 重命名:os.rename()
    • 获取当前⽬录:os.getcwd()
    • 获取⽬录列表:os.listdir()

    创建自增文件夹

    作者:拾瑾
    个性签名:愿历经千帆,归来仍少年.
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Unable to start adb server: adb server version (32) doesn't match this client (39); killing...
    mysql错误指令:Failed to open file "file_name" error 2/error 22
    爬虫流程概述
    Jupyter Notebook的使用
    markdown语法
    pymysql向表中插入数据
    python创建mysql数据库中的表
    python查询ip地址来源
    Pandas读取csv时设置列名
    程序员面试——位运算
  • 原文地址:https://www.cnblogs.com/ayoung/p/14342104.html
Copyright © 2011-2022 走看看