来,今天我们来说说文件的操作
1.文件的读取
1>打开文件
file = open(“文件名”, encoding = ‘UFT-8’) #文件名注意大小写
2>读取文件
text = file.read()
print(text)
3>关闭文件
file.close()
例子:
这是我新建的一个txt文本
然后代码:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
#打开文件
file = open(r'C:\Users\asus\Desktop\美文.txt')
#读写文件
text = file.read()
print(text)
#关闭文件
file.close()
结果为:
亦余心之所善兮,虽九死其犹未悔!
2.文件指针
1>文件指针标记从哪个位置开始读取数据
2>第一次打开文件时,通常文件指针会指向文件的开始位置
3>当执行 read
方法之后,文件指针会移动到读取内容的末尾(默认情况下会移动到文件末尾)
PS:如果执行了一次read
方法,读取了所有内容,那么再次调用read
方法,就不能获得内容了
3.打开文件的方式
open
函数默认以只读方式打开文件,并且返回文件对象
语法:
f = open(“文件名”, ”访问方式”)
举个w
的例子
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
#打开文件
file = open(r'C:/Users/asus/Desktop/美文.txt', "w")
#读写文件
file.write('人有不为,而后可以有为!')
#关闭文件
file.close()
未执行代码之前,txt里写的是亦余心之所善兮,虽九死其犹未悔!
执行后,文件里的是人有不为,而后可以有为!
再举一个a
的例子
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
file = open(r'C:/Users/asus/Desktop/美文.txt', "a")
file.write('\n')
file.write('亦余心之所善兮,虽九死其犹未悔!')
file.close()
我执行了2遍,现在文本里的是
人有不为,而后可以有为!
亦余心之所善兮,虽九死其犹未悔!
亦余心之所善兮,虽九死其犹未悔!
4.按行读取文件内容
1>read
方法默认会把文件的所有内容一次性读取到内存,所以如果文件太大,对内存占用会非常严重。
2>readline
方法可以一次读取一行内容,方法执行后,会把文件指针移动到下一行,准备再次读取。
例子:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
file = open(r'C:/Users/asus/Desktop/美文.txt') #打开文件
while True : #如果不知道文件有几行,用True来无限循环
text = file.readline() #一行一行地读取
if not text : #判断text是否有内容(来判断文件是否被读取完毕)
break
print(text)
file.close()
结果为:
人有不为,而后可以有为!
亦余心之所善兮,虽九死其犹未悔!
亦余心之所善兮,虽九死其犹未悔!
5.文件/目录的常用操作
首先需要导入 os
模块
6.文件操作之copy
很简单,利用前面的,先读取后写入就行了
文件小的可以直接读取
file_read = open(r'C:/Users/asus/Desktop/美文.txt') #打开我们要copy的文件
file_write = open(r'C:/Users/asus/Desktop/美文2.txt', 'w') #以‘只写’的方式打开我们需要加入copy内容的文件,如果文件不存在,则自动创建新文件
text = file_read.read() #把所有内容读取进text
file_write.write(text) #把内容写入file_write
file_read.close() #把文件关闭
file_write.close()
文件大的可以一行一行地copy
#如果文件过大,可以一行一行地读取然后写入
file_read = open(r'C:/Users/asus/Desktop/美文.txt') #打开我们要copy的文件
file_write = open(r'C:/Users/asus/Desktop/美文2.txt', 'w') #以‘只写’的方式打开我们需要加入copy内容的文件,如果文件不存在,则自动创建新文件
while True :
text = file_read.read() #把所有内容读取进text
if not text :
break
file_write.write(text) #把内容写入file_write
file_read.close() #把文件关闭
file_write.close()