美文网首页
10-文件的操作

10-文件的操作

作者: 努力爬行中的蜗牛 | 来源:发表于2018-10-30 18:30 被阅读1次
    文本文件和二进制文件

    文本文件可以使用文本编辑器查看,本质还是二进制文件。
    二进制文件保存的文件不是给人直接阅读的,而是提供给其他软件使用的,如图片,音频,视频。

    文件的基本操作
    • 打开文件
    • 读写文件
    • 关闭文件
    操作文件的操作函数
    函数名/方法 描述
    open 打开文件,并且返回文件对象
    read 读取文件内容到内存
    write 将制定内容写入文件
    close 关闭文件
    read方法-读取文件

    open函数的第一个参数是要打开的文件名

    • 如果文件存在,则返回文件操作对象
    • 如果文件不存在,则抛出异常

    read可以一次性读取文件所有内容。
    close方法负责关闭文件。
    如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的操作

    # 打开文件
    file = open("README")
    
    # 读取文件
    text = file.read()
    print(text)
    
    # 关闭文件
    file.close()
    
    文件指针
    • 文件指针标记从哪个位置读取文件
    • 第一次打开文件时,通常文件指针会指向文件开始的位置
    • 当执行了read方法后,文件指针会移动到文件末尾(默认情况下会移动到文件末尾)
    # 打开文件
    file = open("README")
    
    # 读取文件
    text = file.read()
    print(text)
    
    print("-" * 50)
    
    text = file.read()
    print(text)
    
    # 关闭文件
    file.close()
    
    打开文件的方式

    open函数默认以只读方式打开文件。

    语法:
    f = open("文件名","打开方式")
    
    访问方式 描述
    r 以只读方式打开文件,文件指针默认会指向文件的开始位置。
    w 以只写方式打开文件,如果文件存在会被覆盖,如果不存在,会创建新的文件
    a 以追加方式打开文件,如果文件存在,则文件指针会指向文件末尾,如果不存在,会创建新文件进行写入
    r+ 以读写方式打开文件,文件指针会指向文件的开始位置, 如果文件不存在,会抛出异常
    w+ 以读写方式打开文件,如果文件存在会被覆盖,如果不存在,会创建新的文件
    a+ 以读写方式打开文件,如果文件存在,则文件指针会指向文件末尾,如果不存在,会创建新文件进行写入
    # 打开文件
    file = open("README", "a")
    # file = open("README", "w")
    
    # 写入文件
    file.write("python")
    
    # 关闭文件
    file.close()
    
    按行读取文件内容

    readline方法

    • readlie一次只能读取文件一行内容
    • 方法执行后,文件指针会移动到下一行,准备再次读取
    # 打开文件
    file = open("README")
    
    # 读取文件一行内容
    while True:
        text = file.readline()
        # 判断是否读取到内容
        if not text:
            break  
        print(text)
        
    # 关闭文件
    file.close()
    
    小文件复制
    # 打开文件
    file_read = open("README")
    file_write = open("README_COPY", "w")
    
    # 读写
    text = file_read.read()
    file_write.write(text)
    
    # 关闭文件
    file_read.close()
    file_write.close()
    
    大文件复制
    # 打开文件
    file_read = open("README")
    file_write = open("README_COPY", "w")
    
    # 读写
    while True:
        # 读取第一行内容
        text = file_read.readline()
        # 判断是否读取到内容
        if not text:
            break
        file_write.write(text)
    
    # 关闭文件
    file_read.close()
    file_write.close()
    
    文件或目录常见的管理操作

    在python中,如果希望通过程序实现以上功能,需要导入os模块

    In [1]: import os                                                               
                                                                          
    In [2]: os.rename("hello.text", "123.txt")                                      
    
    In [3]: ls                                                                      
    123.txt          Downloads/       Music/           hotger/
    Applications/    GitBook/         Pictures/        software/
    Desktop/         Library/         Public/          study/
    Documents/       Movies/          PycharmProjects/ zyx/
    
    In [4]: os.remove("123.txt")                                                    
    
    In [5]: ls                                                                      
    Applications/    GitBook/         Pictures/        software/
    Desktop/         Library/         Public/          study/
    Documents/       Movies/          PycharmProjects/ zyx/
    Downloads/       Music/           hotger/
    
    文本文件的编码方式ASCII和UTF8

    ASCII编码

    • 计算机中有256个字符
    • 一个ASCII在内存中占用一个字节的空间
      8个0/1的排列组合方式一共有256种,即2 ** 8

    UTF8编码方式

    • 计算机中使用1-6个字节来表示一个UTF8字符,涵盖了地球上几乎所有的文字。
    • 大多数汉字会使用3个字节来表示。
    • UTF8是Unicode的编码一种。

    python2.x默认使用的ASCII编码
    python3.x默认使用的UTF8编码

    在python2.x中使用中文
    # *-* coding:utf8 *-*
    hello_str = "hello 世界"
    print(hello_str)
    

    unicode字符串

    • 在python2.x中,即使指定使用utf8编码格式,但是在遍历字符串时,仍然会以字节为单位遍历字符串
    • 要能够正确遍历字符串,在定义字符串时,需要在字符串的引号前,加一个小写字符u,告诉解释器这是一个unicode字符串编码格式
    # *-* coding:utf8 *-*
    
    # 引号前面的u告诉解释器这是一个utf8编码格式的字符串
    hello_str = u"hello 世界"
    print(hello_str)
    
    for c in hello_str:
        print(c)
    
    eval函数

    eval()函数十分强大,将字符串变成有效的表达式来求值,并返回计算结果。
    注意:不要直接转换input结果

    input_str = input("请输入算术题:")
    
    print(eval(input_str))
    

    相关文章

      网友评论

          本文标题:10-文件的操作

          本文链接:https://www.haomeiwen.com/subject/hzfntqtx.html