5-1python语法基础-文件操作
文件操作,
看看python的官方文档,:https://docs.python.org/zh-cn/3/tutorial/inputoutput.html#reading-and-writing-files
文件操作分为打开,读,写,关闭,
文件打开:open方法
f = open("aa.txt","w")
这个方法有两个参数,
- 第一个是file,
- 第二个mode打开模式, 这两个都必须是字符串,
w+,如果文件不存在是会帮我们创建文件的,但是不会帮我们创建文件夹,这个要记住,
关于第一个参数,
这个打开文件是直接在当前文件夹下打开一个文件,这个时候,如果模式是w,没有这个文件是会自动创建的,但是如果模式是r,会报错异常的,
注意2,f = open("./111/aa.txt","w")
这个是按照路径打开文件,这个路径里面的文件夹或者文件如果不存在是会报错的,也就是这种方法不会帮我们自动创建一个文件出来,
注意3,f = open("aa.txt","w+")
另外详细解释这个模式有多少种,
# r,只读,read,这是默认打开方式,如果不加第二个modo参数,就是只读打开
# w,只写,write,
# a,追加,add,
# r+,以读写方式打开,如果文件不存在,抛出异常
# w+,以读写方式打开,如果文件不存在,创建文件,这种方式记住是会覆盖文件的,
# a+,以读写方式打开,如果文件存在,指针放到文件末尾,如果文件不存在,创建文件,
上面是常用的,还有不常用的,
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
文件写入,write方法
f = open("./woffs/aaaa.txt","w+")
f.write("1234")
f.close()
文件读取,read方法
f = open("./woffs/aa.txt","r")
print(f.read())
f.close()
注意这个模式,
文件读取,readline方法,可以用于读取大文件,
def write_big_text(file): # 读取大文件
# 打开
file = open(file, 'r')
# 读取
while True:
text=file.readline()
print(text,end='') # 读取每一行的末尾默认已经有了一个'\n'
if not text:
break
# 关闭
file.close()
文件操作,with方法(推荐)
调用 f.write() 时,未使用 with 关键字,或未调用 f.close(),即使程序正常退出,也可能导致 f.write() 的参数没有完全写入磁盘。
使用open每次都要关闭,太麻烦,而且会影响文件的后续操作,所以最常用的还是使用with打开文件,这样就不用调用close方法了,
所以推荐使用with方法,
简述with方法打开处理文件帮我我们做了什么?
打开文件在进行读写的时候可能会出现一些异常状况,如果按照常规的f.open写法,我们需要try,except,finally,做异常判断,并且文件最终不管遇到什么情况,都要执行finally f.close()关闭文件,with方法帮我们实现了finally中f.close
with open("./woffs/aa.txt","w+") as f:
f.write("123123123")
print(f.closed) # True
文件读取,使用try ... except来打开文件
def open_file(file):
try:
with open(file,'r') as f :
text=f.read()
print(text)
except FileNotFoundError:
print('文件不存在')
except Exception as result:
print('未知错误%s'%result)
file = '123.txt'
open_file(file)
获取一个文件夹下面的所有的文件
os.listdir()用于返回指定的文件夹下包含的文件或文件夹名字的列表,这个列表按字母顺序排序。
import os
filePath = 'C:\\myLearning\\pythonLearning201712\\carComments\\01\\'
os.listdir(filePath)
技术改变命运