文件操作

文件的基本操作

打开文件

path = 'test.txt'
path = r'/home/pyvip/py_case/test.txt'
file = open(path, 'w+')
t 文本模式 (默认)
x 写模式,新建一个文件,如果该文件已存在则会报错。
b 二进制模式。
+ 打开一个文件进行更新(可读可写)。
U 通用换行模式(不推荐)。
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

写入文件

# 一次性写入
file.write('Python')

# 按行写入
file.writelines([‘1’, ‘2’, ‘3’])

读取文件

# 一次性读取完
file.read()

# 按行读取
file.readline()
file.readlines()

查看

 file.tell()

文件指针

 file.tell()

关闭

 file.close()

上下文管理器

with open as f:
    # 各种操作

这种方法不需要close

结构化文件

# 1.创建IO
import io
sio = io.StringIO()

# 2.写入内容
sio.write(str(i))

# 3.读取内容
sio.getvalue()

StringIO在内存中如同打开文件一样操作字符串,因此也有很多文件的方法。

当创建的StringIO调用close()方法时,在内存中的数据会被丢失

非结构化文件

# 1.创建IO
import io
sio = io.BytesIO()

# 2.写入内容
sio.write(b'abc')

# 3.读取内容
sio.getvalue()

BytesIOStringIO类似,但是BytesIO操作的是Byte数据

常用的系统工具

os操作系统交互

import os

# 可以直接调用系统命令
os.system('ifconfig')

# 操作路径
os.path()
os.path.join(r'/home/chancey/', r'data')  # 路径拼接

# 操作文件目录
os.mkdir('demo')  # 创建目录
os.rename('demo', 'test')  # 重命名

os提供了PYTHON和操作系统的交互方式,只要是和操作系统相关,就可以在os模块中找方法。

更多方法传送门

shutil高级文件操作

import shutil

# 移动文件
shutil.move

# 复制文件夹
shutil.copytree

# 删除文件夹
shutil.rmtree

shutil模块提供了许多关于文件和文件集合的高级操作。

更多方法传送门

posted @ 2019-01-06 17:31  ChanceySolo  阅读(218)  评论(0编辑  收藏  举报