一,文件操作
读写文件是最常见的IO操作,Python内置了读写文件的函数。
1,读文件
f = open("1.py","r",encoding="utf-8") print(f.read()) f.close()
结果为:hello 哈哈
参数1:文件名 可以是绝对路径 参数二:对文件的操作 r读 w写 b二进制 a追加 参数三:encoding 编码
标示符'r'表示读,这样,我们就成功地打开了一个文件。
如果文件不存在,open()
函数就会抛出一个IOError
的错误,并且给出错误码和详细的信息告诉你文件不存在。
如果文件打开成功,接下来,调用read()
方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str
对象表示。
最后一步是调用close()
方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,
并且操作系统同一时间能打开的文件数量也是有限的。
每次都这么写实在太繁琐,所以,Python引入了with
语句来自动帮我们调用close()
方法:
with open("1.txt","r",encoding="utf-8") as f: print(f.read())
这样就不必调用f.close()方法了。
2,写文件
写文件和读文件是一样的,唯一区别是调用open()
函数时,传入标识符
'w'
或者
'wb'
表示写文本文件或写二进制文件。
写入文件时,当文件不存在时,直接创建。会覆盖原有文件内容。
with open("1.txt","w",encoding="utf-8") as f: print(f.write("hello"))
3,向文件中追加内容
with open("1.txt","a",encoding="utf-8") as f: print(f.write("hello"))
区别是调用open()
函数时,传入标识符'a'
二,文件的常用方法
# read() 把文件的所有内容都读取出来,返回一个字符串。 # write() 把字符串data写入到文件中,只接受字符串参数。 # readline() 每次只读取文件的一行数据,返回该行的字符串数据。 # readlines() 读取文件内容,返回一个list,每一行为列表中的一个元素。
with open("1.txt","r",encoding=ENCODING) as f: print(f.readlines())
结果为:['a\n', 'b\n', 'c\n']
可以使用enumerate()打印行号及内容。
with open("1.txt","r",encoding=ENCODING) as f: for i,j in enumerate(f.readlines()): print(i,j)
结果为:0 a 1 b 2 c# name() 文件名 # fileno() 文件描述符 # close() 关闭文件 # encoding() 文件编码 # closed() 判断文件是否关闭 # seek(offset,whence) offset偏移量(正数向前,负数向后) # whence 0开头 1现在 2末尾 控制文件光标,文件需要使用b方式打开。 # tell() 返回文件的光标位置 # truncate(size) 只有写文件用,size保留多少位,0位清空文件。
三,函数
封装的一种思想,把细小的功能或者可以缩小的功能封装成一个函数。定义: 以关键字def开头,函数名,参数:回车缩进
def function(arg1,arg2,...):
pass
调用: function(1,2,3) 函数名直接传入参数
如:定义一个计算和的函数add(),需要传入两个参数,返回两个参数相加的结果。
def add(x,y): return x+y print(add(1,2))
结果为:3