day4-python基础知识<文件操作>

Python 文件操作

前言
1、文件的保存
数据保存在内存,关机后就没了
数据想持久化保存,保存在硬盘/磁盘即可

2.打开文件函数p2与p3区别。
Python
2打开文件file()、open()两个函数都可以,Python3打开文件只有open()函数

3.
文件打开模式。共9种,读r、写w、追加a模式,open("a.txt","w") 参数1文件名,参数2打开模型


1)写模式w。
# -打开文件不存在,默认在当前路径新建一个文件
# -文件存在&&有内容,写入时,直接删除全部内容后,再写入当前
# -文件不存在&&写入内容,直接新建且写入内容
    f = open("a.txt","w")
f.write("你好呀")
f.close()
注意问题:
-win乱码问题。window默认字符集编码方式GDK,写入中文后可能是乱码,解决win写入文件乱码的问题,open参数后添加
-write()与wrtelines()区别。前者只能写字符串,后者list直接写入,不用循环,有多少写多少,但list必须是str类型,因为writelines()底层调用的还是write()方法


2)读模式r。不写默认是r模式。只能读不能写,文件不存在会报错
f = open("a.txt","r",encoding="utf-8")
result = f.read()
f.close()
print(result)


3)追加模式a。只能写不能读
# a 追加写模式,不能读取,需关闭文件
f = open('b.txt','a')
res = f.read()
print(res)
# 不支持读模式,运行会报错:io.UnsupportedOperation: not readable
'''
1.-文件不存在,则新建文件
2.-文件不存在&&写入操纵,创建文件,且执行写入内容
3.文件存在&&有内容,指针默认指向文件内容尾部,追加写入
'''
f = open('f.txt','a')
f=f.write('哈哈')          # 文件指针读取所有内容后放在,内容末尾


# r
+ 读写模式 ''' -文件不存在时,报错,无此文件 -文件存在,无内容,直接写入 -文件存在,有内容,指针在最前面,直接覆盖写入对应长度的字符,无法保留文本完整内容 ''' f=open('d.txt','r+',encoding='utf-8') res = f.write('000')


# w
+ 写读模式。能读,读不到内容,因为先清空。。 ''' -无文件,创建文件,并写入 -有文件,先清空文件内容,再写入。无法读取原文本内容 ''' f=open('1.txt','w+',encoding='utf-8') res = f.write('1')


# a
+ 追加读模式 ''' -无文件,创建文件,并写入 -有文件,尾部换行后,写入。该方式支持读写,常用方式 ''' f=open('2.txt','a+',encoding='utf-8') res = f.write('1')


文件读写方法
f = open('2.txt')
print(f.read())                 # 一次读取全部内容

print(f.readlines())        # 列表形式,一次性读取文件所有内容,一次性读取,如果文件大的哈,非常占内存,不建议使用,建议使用对象的方式,逐行读取
# ['第一行
', '第二行']

print(f.readline())         # 每次只读取一行
——————————————————————————————————
3、文件指针。f.seek()
read()与readline()区别?
f.readlines() #读取所有内容,返回list
f.read() #读取所有内容,返回字符串
注,如果同时调用read()和readline(),那个函数在后,那个读取为空,因为read()已经读完了所有内容,两个函数之间添加文件指针,既可保证两个函数都可以输出内容
 
原文地址:https://www.cnblogs.com/lily-20141202/p/10029429.html