zoukankan      html  css  js  c++  java
  • python基础入门之十四 —— 文件操作

    一、文件的基本操作

    1、打开文件

    • open(name,mode)  
    • name-文件名字符串;mode-访问模式

    P.s:访问模式

    r

    只读。文件指针位于文件开头,默认模式

    P.s:打开不存在文件报错

    rb 二进制打开文件用于只读,文件指针位于文件开头
    r+

    读写,文件指针位于文件开头

    P.s:r+打开不存在的文件报错,同r操作

    rb+ 二进制打开文件用于读写,文件指针位于文件开头
    w

    仅写入,文件指针位于文件开头。

    如文件已存在,从开头编辑,会覆盖原内容即原内容删除;如文件不存在创建新文件

    wb

    二进制打开文件用于写入。

    规则同'w'。

    w+

    读写。

    写规则同‘w'

    P.s: w+打开文件原内容删除,未写入时直接读取为空,因为w操作会覆盖原内容

    wb+

    二进制打开文件用于读写

    规则同'w+'

    a

    追加,文件指针位于文件结尾。

    如文件已存在,从原内容后添加;如文件不存在创建新文件

    ab 二进制打开文件用于追加,其他同'a'
    a+

    二进制打开文件用于读写,写规则同'a'

    P.s:a+未写入时直接读取为空,因为a操作的文件在文件结尾

    ab+ 二进制打开文件用于读写,写规则同'a'

    2、读取文件

    read(num)

    从头读取,num为读取数据长度,不写默认读取全部

    f = open('test.txt', 'r')
    content = f.read(7)  # P.s:换行占据一个字符
    print(content)
    """
    aaaaa
    b
    """
    f.close()
    readlines()

    按行从头读取,读取数据存入列表,每一行的数据为一个元素

    f = open('test.txt', 'r')
    content = f.readlines()  
    print(content)  # ['aaaaa
    ', 'bbbbb
    ', 'ccccc']
    f.close()
    readline()

    一次读取一行内容

    f = open('test.txt', 'r')
    
    content = f.readline()
    print(content)  # aaaaa
    
    content = f.readline()
    print(content)  # bbbbb
    
    f.close()

    3、写入文件:f.write()

    4、移动光标:f.seek(偏移量,起始位置)

    起始位置中:

    • 0:文件开头
    • 1:当前位置
    • 2:文件结尾
    f = open('test.txt','r')
    f.seek(2,0)
    con=f.read()
    print(con)
    '''
    aaa
    bbbbb
    ccccc
    '''
    f.seek(0)  # seek(0)为seek(0,0)简写
    con=f.read()
    print(con)
    '''
    aaaaa
    bbbbb
    ccccc
    '''
    f.close()

    二、应用案例-备份文件:

    # 用户输入
    old_name = input('请输入需要备份的文件名:')
    # 文件名截取名字和后缀,更改为新名字
    index = old_name.rfind('.')
    if index <= 0:
        print('文件名格式错误!')
    else:
        new_name = old_name[:index]+'_副本'+old_name[index:]
        # 文件写入
        old_file = open(old_name, 'rb')
        new_file = open(new_name, 'wb')
        while True:
            content = old_file.read(1024)
            if len(content)==0:
                print('备份成功!')
                break
            new_file.write(content)
        new_file.close()
        old_file.close()

    三、文件和文件夹的操作:

    1、前提:导入os模块

    import os

    2、函数

    重命名文件、文件夹 os.rename(目标文件名,新文件名)
    删除文件 os.remove(目标文件名)
    创建文件夹 os.mkdir(文件夹名字)
    删除文件夹 os.rmdir(文件夹名字)
    获取当前路径 os.getcwd()
    改变默认路径 os.chdir(路径)
    获取目录下文件列表 os.listdir(目录)

    3、应用案例

    import os
    print(os.getcwd())  # 获取当前路径 C:UsersmyUserNamePycharmProjectsdemo
    os.mkdir('文件夹')   # 新建文件夹
    # os.remove('文件夹') # 删除的是文件夹,报错
    os.chdir('文件夹')  # 切换路径
    print(os.getcwd())  # 获取当前路径 C:UsersmyUserNamePycharmProjectsdemo文件夹
    i = 5
    while i > 0:
        open('file' + str(i) + '.txt', 'w')
        i -= 1
    # 在文件夹下新建file1.txt~file5.txt 5个文件

  • 相关阅读:
    DNS 查询长度
    WebSocket
    Overview of cookie persistence
    Linux Cluster
    keepalived + nginx 主主模式
    MIME 类型
    IaaS,PaaS,SaaS 的区别
    Linux下"负载均衡+高可用"集群的考虑点 以及 高可用方案说明(Keepalive/Heartbeat)
    交换机链路聚合与Linux的bond模式对照
    DHCP 中继
  • 原文地址:https://www.cnblogs.com/LynHome/p/12577773.html
Copyright © 2011-2022 走看看