python之文件操作

打开文件的几种方式

	r(只读,文件的描述符在开头)
	rb(二进制格式打开,只读,文件的描述符在开头)
	r+(读写,文件的描述符在开头)
 	w(只写,文件的描述符在开头,若文件存在则会覆盖,若不存在就会创建一个)
 	wb(二进制写入文件,文件的描述符在开头,同前)
 	w+(读写)
	a(打开文件,用于追加内容,文件若存在描述符在末尾)
	ab(二进制追加内容)
	a+(读写,文件的描述符在末尾)
	x(创建一个新文件并打开以写入,若文件已存在则报错)
	xb(创建一个新文件并打开以二进制写入)
	t(文本模式,默认)

open函数

def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
	file   # 文件的路径
	mode   # 以哪种方式打开,默认是r(读写)
	buffering  # 用来设置缓冲策略的可选整数,通过0来关闭缓冲(只允许在二进制模式下),
	# 1来选择行缓冲(只在文本模式下使用),并使用大于1的整数表示固定大小的块缓冲区。
	# 若没有参数,则使用默认缓冲区策略.在许多系统上,缓冲区通常是4096或8192字节长
	encoding  # 用于设置使用哪种编码方式来进行编码或解码
	errors  # 设置为"ignore"可以忽略错误,"strict"不忽略错误,默认为不忽略错误,最好不要用在二进制模式下
	newline  # 只适用于文本模式(t)
	# 输入模式下:不定义此参数,将会将'\n', '\r', '\r\n',转换为'\n',
	closefd  # 如果为False,则在关闭文件时,底层文件描述符将保持打开状态。当给定文件名时,这将不起作用,并且在这种情况下必须为True。

读文件

	---------  简单读文件(一次性读取全部) --------
	path = "test.txt"
	f = open(path, 'r')
	f.read()
	---------  读文件部分内容 --------
	f.read(10)  # 是根据字节来读取的
	---------  读一行数据 --------
	f.readline()
	---------  读所有行数据 --------
	f.readlines()   # 返回一个列表
	---------- 修改文件描述符的位置  ---------
	f.seek(0) # 根据偏移量进行移动
	f.close() # 关闭文件

写文件

	path = "test.txt"
	f.open(path, 'w')
	f.write("123456")  # 并不会立即写入文件,要等待文件关闭或者缓冲区满了之后才会存入文件
	f.flush()  # 立即将缓冲区的数据存入文件
	f.close()

其他数据类型的读写set-tuple-dict-list
需要用到python的一个库函数pickle,直接导入即可

	# 写入
	path = "test.txt"
	list1 = [1, 2, 3, 4, [1, 2, 35]]
	with open(path, 'wb') as f:
	    pickle.dump(list1, f)

	# 读取
	with open(path, 'rb') as f1:
	    list2 = pickle.load(f1)
	print(list2)

这是以二进制方式进行读取的,虽然我们看不懂文件里的内容,但并不影响我们对数据进行读取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章