Python全栈开发之文件操做

No.1 文件的概念

文件的概念和做用

计算机中的文件,就是存储在某种长期储存设备上的一段数据流 编辑器

计算机中的文件,能够在须要的时候使用ide

文件的存储方式

文本文件函数

可使用文本编辑器查看编码

本质上仍是二进制文件指针

二进制文件code

保留的内容不能直接查看,而是提供给其余软件查看视频

图片、音频、视频等都是二进制文件blog

No.2 文件的基本操做

操做文件的基本套路

打开文件图片

读写文件内存

关闭文件

操做文件的函数

函数 说明
fp.read([size]) size为读取的长度,以byte为单位
fp.readline([size]) 读一行,若是定义了size,有可能返回的只是一行的一部分
fp.readlines([size]) 把文件每一行做为一个list的一个成员,并返回这个list
fp.write(str) 把str写到文件中,write()并不会在str后加上一个换行符
p.writelines(seq) 把seq的内容所有写到文件中(多行一次性写入)
fp.close() 关闭文件
fp.flush() 把缓冲区的内容写入硬盘
fp.fileno() 返回一个长整型的文件标签
fp.tell() 返回文件操做标记的当前位置,以文件的开头为原点
fp.next() 返回下一行,并将文件操做标记位移到下一行
fp.seek(offset[,whence]) 将文件打操做标记移到offset的位置。这个offset通常是相对于文件的开头来计算的,通常为正数, whence能够为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算

read方法——读取文件

f = open('manage.py','r',encoding='utf-8')
print(f.tell())
text = f.read()
print(text)
f.close()

文件指针表示从哪一个位置开始读取数据

第一次打开文件时,指针指向文件的开始位置

当执行了read方法后,指针指向文件的末尾,再次调用不会读取到任何内容

打开文件的方式

模式 说明
r 以只读方式打开文件,文件的指针将会放在文件的开头,这是默认模式,若是文件不存在,抛出异常
w 以只写方式打开文件,若是文件存在会被覆盖,若是文件不存在,建立新文件
a 以追加方式打开文件,若是该文件已存在,文件指针将会放在文件的结尾,若是文件不存在,建立新文件进行写入
r+ 以读写方式打开文件,文件的指针将会放在文件的开头,若是文件不存在,抛出异常
w+ 以读写方式打开文件,若是文件存在会被覆盖,若是文件不存在,建立新文件
a+ 以读写方式打开文件,若是该文件已存在,文件指针将会放在文件的结尾,若是文件不存在,建立新文件进行写入

逐行读取

read方法默认会把文件的全部内容一次性读入到内存中

若是文件过大,对内存的占用很是恐怖

readline方法能够一次读取一行内容

方法执行后,会把文件的指针指向下一行

复制文件

小文件复制

打开一个文件,读取所有内存,并写入到另外一个文件中

# 1. 打开文件
file_read = open("README")
file_write = open("README.bak", "w")

# 2. 读取并写入文件
text = file_read.read()
file_write.write(text)

# 3. 关闭文件
file_read.close()
file_write.close()

大文件复制

# 1. 打开文件
file_read = open("README")
file_write = open("README.bak", "w")

# 2. 读取并写入文件
while True:
    # 每次读取一行
    text = file_read.readline()

    # 判断是否读取到内容
    if not text:
        break

    file_write.write(text)

# 3. 关闭文件
file_read.close()
file_write.close()

No.3 文件/目录的经常使用管理操做

在终端/资源管理器、 中能够执行常规的文件/目录管理操做 ,若是但愿经过代码来实现,须要导入os模块

文件操做

方法 说明 示例
rrename 重命名文件 os.rename(文件名)
remove 删除文件 os.remove(文件名)

目录操做

方法 说明 示例
listdir 目录列表 os.listdir(目录名)
mkdir 建立目录 os.mkdir(目录名)
rmdir 删除目录 os.rmdir(目录名)
getcwd 获取当前目录 os.getcwd()
chdir 修改工做目录 os.chdir(目标目录)
path.isdir 判断是不是文件 os.path.isdir(文件路径)

No.4 文本文件的编码转换

Python全栈开发之文件操做

No.5 with上下文管理

with open("demo","r",encoding="utf-8") as f: #自动关闭并释放文件资源
    for line in f:
        print(line)

with open("demo","r",encoding="utf-8") as f,\
     open("demo.bak","w",encoding="utf-8") as f2:
    for line in f:
        print(line)
        f2.write(line)
相关文章
相关标签/搜索