06-文件操作

发布时间 2023-12-18 11:09:24作者: zxinlog

文件

python 中文件以两种方式存在,第一种是文本格式,文本格式是人类可阅读的格式,另一种格式是二进制。二进制一般需要配合其他的软件进行使用。

python 打开文件的方式类似C语言的方式,以读模式、写模式、读写模式、二进制模式等。

文件的四个基本操作:打开文件、读文件、写文件、关闭文件。

open
read
write
close

open 为了获取文件操作符,读写关闭都需要文件操作符进行使用。

read 如果不限制读取的数量,则会将文件中所有内容读取出来。如果执行了一次read,则再次执行read,不会读取内容,因为文件指针此时已经移动到了文件的末尾。

文件访问方式:

r, w, a
r+, w+, a+
a是追加模式,自动会将文件指针置于文件末尾。
r是只读,w是只写
r+和w+都是读写,不过w+如果文件不存在,则会创建新文件。
除此之外,还有rb,wb,rb+,r+b,wb+,w+b等二进制方面的操作。

因为read 一次性将文件所有内容读取到内容,如果文件内容过大,则内存压力太大,因此还可以按行读取。

readline,复制操作

def copy(src, dst):
    src_fd = open(src, "r+")
    if not src_fd:
        src_fd.close()
        print("%s 文件打开失败" % (src))
    dst_fd = open(dst, "w+")
    if not dst_fd:
        print("%s 文件打开失败" % (dst))
        dst_fd.close()
        src_fd.close()

    dst_fd.write(src_fd.read())
    src_fd.close()
    dst_fd.close()

如果大文件,则使用按行复制的方式


def copy(src, dst):
    src_fd = open(src, "r+")
    if not src_fd:
        src_fd.close()
        print("%s 文件打开失败" % (src))
    dst_fd = open(dst, "w+")
    if not dst_fd:
        print("%s 文件打开失败" % (dst))
        dst_fd.close()
        src_fd.close()

    while True:
        line = src_fd.readline()
        if not line:
            break
        dst_fd.write(line)

    src_fd.close()
    dst_fd.close()

seek

文件定位指针,类似C语言中的fseek,seek(offset, from) 这样进行使用。

文件目录的操作

在python 中,可以很方便的对文件和目录进行操作。

需要导入 os 模块。

常用操作:

"""
os.rename(源文件名, 目标文件名)
os.remove(文件名)
os.listdir(目录名) 目录列表
os.mkdir(目录名) 创建目录
os.rmdir(目录名) 删除目录
os.getcwd() 获取当前目录
os.chdir() 	修改当前目录
isdir() 判断是否是文件夹
"""

eval

eval 函数可以将字符串当作表达式进行求值。

type(eval('[1,2,3,4,5]')) # list
__import__('os').system('ls')
等价于:
import os
os.system("终端命令")