Python open[]文件处理使用介绍,with open 函数

来源:未知 浏览 119次 时间 2021-06-10 20:34

open(file[, mode[, buffering[, encoding[, errors[, newline[, closefd=True]]]]]])
open函数有很多的参数常用的是filemode和encoding
file文件位置鼠标自动点击器mode和encoding
file文件位置需要加引号
mode文件打开模式见下面3
buffering的可取值有011三个0代表buffer关闭(只适用于二进制模式)1代表line buffer(只适用于文本模式)1表示初始化的buffer大小;
encoding表示的是返回的数据采用何种编码一般采用utf8或者gbk;
errors的取值一般有strictignore当取strict的时候字符编码出现问题的时候会报错当取ignore的时候编码出现问题程序会忽略而过继续执行下面的程序。
newline可以取的值有None, \n, \r, ”, ‘\r\n’用于区分换行符但是这个参数只对文本模式有效;
closefd的取值是与传入的文件参数有关默认情况下为True传入的file参数为文件的文件名取值为False的时候file只能是文件描述符什么是文件描述符就是一个非负整数在Unix内核的系统中打开一个文件便会返回一个文件描述符。

2. Python中file()与open()区别
两者都能够打开文件对文件进行操作也具有相似的用法和参数但是这两种文件打开方式有本质的区别file为文件类用file()来打开文件相当于这是在构造文件类而用open()打开文件搜索引擎研究而用open()打开文件是用python的内建函数来操作建议使用open

3. 参数mode的基本取值

Character Meaning ‘r’ open for reading (default) ‘w’ open for writing, truncating the file first ‘a’ open for writing, appending to the end of the file if it exists ‘b’ binary mode ‘t’ text mode (default) ‘+’ open a disk file for updating (reading and writing) ‘U’ universal newline mode (for backwards compatibility; should not be used in new code)

r、w、a为打开文件的基本模式对应着只读、只写、追加模式;
b、t、+、U这四个字符与以上的文件打开模式组合使用二进制模式文本模式读写模式、通用换行符根据实际情况组合使用、

常见的mode取值组合

r或rt 默认模式文本模式读rb 二进制文件 w或wt 文本模式写搜索引擎研究文本模式读rb 二进制文件 w或wt 文本模式写打开前文件存储被清空wb 二进制写文件存储同样被清空 a 追加模式只能写在文件末尾a+ 可读写模式写只能写在文件末尾 w+ 可读写与a+的区别是要清空文件内容r+ 可读写与a+的区别是可以写到文件任何位置

4. 测试
测试文件test.txt内容如下:

Hello,Python is a test file

用一小段代码来测试写入文件直观的显示它们的不同

test = [ "test1\n", "test2\n", "test3\n" ]f = open("test.txt", "a+")try: #f.seek(0) for l in test: f.write(l)finally: f.close()

a+、w+和r+模式的区别(测试后还原test.txt)
a+模式

# cat test.txtHello, Python is a test filetest1test2test3

w+模式

# cat test.txttest1test2test3

r+模式
在写入文件前我们在上面那段代码中加上一句f.seek(0)用来定位写入文件写入位置(文件开头)直接覆盖字符数(注意\n也是一个字符)

# cat test.txttest1test2test3inuxeye.comThis is a test file

注意:r+模式打开文件时此文件必须存在否则就会报错‘r’模式也如此
其他测试

f = open('test.txt') f.read() #读取整个文件字符串显示'Hello,Python\n\nThis is a test file\n' f.read() #指针在文件末尾不能再读取内容'' f = open('test.txt') f.readline() #一次读一行指针在该行末尾'Hello,Python\n' f.tell() #改行的字符长度13 f.readline()'www.jb51.net\n' f.tell()30 f.readline()'This is a test file\n' f.tell()50 f.readline()'' f.tell() #指针停在最后一行50 f = open('test.txt') f.readlines() #读取整个文件以列表显示['Hello,Python\n', 'www.jb51.net\n', 'This is a test file\n'] f.tell() #指针在最后一行50 f = open('test.txt','w') #覆盖创建新文件 f.write('Hello,Python!') #如果写入内容小于1024会存在内存否则需要刷新 f.flush() #写入到硬盘 f.close() #关闭文件会自动刷新 f.write('Hello,Linuxeye') #关闭后写失败提示文件已经关闭Traceback (most recent call last): File "stdin", line 1, in moduleValueError: I/O operation on closed file

转载请注明:seo-网站优化-网站建设 » Python open()文件处理使用介绍

标签: 文件fileopen模式