Python读写文件open,read,readline,readlines,‘r‘,‘w‘,“a“,“r+“等等

65 阅读3分钟

# f = open("./data.txt" , "r" , encoding = "utf-8"

#"utf-8"为编码方式 "r"为读出 “w” 为写入

# f.read() 返回全部文件内容的字符串

#f.readline() 返回一行文件内容的字符串

#f.readlines() 返回全部文件内容组成的列表

#f.close() 关闭文件,释放资源

#with open("./data.txt") as f: 这也是一种打开文件的方式

#用这种方法打开文件就可以不用close关闭文件了

# f = open("./读文件使用.txt",'r',encoding="utf-8")

# contect = f.read()

# print(contect)

# f.close()

with open("./读文件使用.txt",'r',encoding="utf-8") as d:

contect1 = d.read() #这是全部读出

print(contect1)

print(d.readline())

print("-"*80)

# 添加的参数小于要读取的一行中字符的个数时,只读取我们所写入的参数的字符个数

# ,如果超出了一行的字符个数范围,那么输出的只有这一行的所有字符

# ,不加参数时默认读取这一行的所有字符

print(d.readlines())

#按我自己的话说,如果第一行的最后一个字符为的下标为5,

#那么括号里填的数只要大于0并且小于等于5,那么它就只会输出这一行的所有内容

#如果第二行的最后一个字符下标为11,那么括号里填的数只要大于5并且小于等于11

#那么他就会输出这两行的所有字符

#如果不填数字就会默认输出全文所有字符

#同样不能忘记用encoding="utf_8"确保是用utf—8编码形式输出的

with open("./读文件使用.txt","w",encoding="utf-8") as f:

f.write("你好~") #如果用write写入 会自动清空之前这个文件里的所有内容

f.write("\n") #在write下系统是不会自动帮你换行的,需要手动操作

f.write("吃了吗?")

##运行之后这个文件里的内容就变成了:

# 你好~

# 吃了吗?

#但是用write写入如果这个文件本来不存在,它会自动给你创建一个文件,文件名就是你写入的文件名

#同样不能忘记用encoding="utf_8"确保是用utf—8编码形式输出的

with open("./读文件使用.txt","a",encoding="utf-8") as f:

#用a的方法写入就不会清空之前文件里的数据

#写入的方法和用write方法一样

f.write("阿巴阿巴~")

#运行过后文件里就变成这样了:

# 你好~

# 吃了吗?阿巴阿巴~

#用a写入如果这个文件本来不存在,它也会自动给你创建一个文件,文件名就是你写入的文件名

#同样不能忘记用encoding="utf_8"确保是用utf—8编码形式输出的

with open("./读文件使用.txt","r+",encoding="utf-8") as f:

#这就可以运行 读和写 的操作了

#如果用r+方式写入文件内容,如果文件不存在,它会报错。

#r+方式是读写方式打开一个已有的文件,如果文件不存在则会报错

#如果以r+方式写入文件,会将文件指针移到文件开头,并覆盖之前的所有内容

#是从开头一个字符一个字符覆盖,如果写入的字符长度不够长,那么之前的数据还是会在的

f.write("我是个AI小白")

print(f.read())

#运行之后文件内容为:

#我是个AI小白�?阿巴阿巴~ (这里出了点编码问题,不过问题不大)

#在r+模式下,所有写入和读出方法和“w”与“r”方法一样,熟练了就好