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)

posted @ 2020-02-11 05:31  技术改变命运Andy  阅读(143)  评论(0编辑  收藏  举报