今天我们一起来学习如何使用Python去进行文件的读写操作。
# 机构:家里蹲
# 作者:青灬火
# 时间:2021/7/26 12:17
'''
文件的读写原理
文件的读写俗称“IO操作”
文件读写操作流程
Python操作文件 --》 打开或新建文件 --》 读、写文件 --》 关闭资源
内置函数open()创建文件对象
语法规则
file = open(filename [, mode, encoding]) #mode,默认为只读,encoding默认文本文件中字符的编写格式为 gbk
'''
file = open('a.txt', 'r', encoding='UTF-8')
print(file.readlines())
file.close()
'''
文件的类型
按文件中数据的组织形式,文件分为以下两类
文本文件:存储的是普通“字符”文本,默认为unicode字符集,可以使用记事本程序打开
二进制文件:把数据内容用“字节”进行存储,无法用记事本打开,必须使用专用的软件打开,举例:mp3音频文件,jpg图片,.doc文档等
打开模式
r 以只读模式打开文件,文件的指针将会放在文件的开头
w 以只写模式打开文件,如果文件不存在则创建,如果文件存在,则覆盖原有内容,文件指针在文件的开头
a 以追加模式打开文件,如果文件不存在则创建,文件指针在文件开头,如果文件存在,则在文件末尾追加内容,文件指针在原文件末尾
b 以二进制方式打开文件,不能单独使用,需要与其它模式一起使用,rb,或者wb
+ 以读写方式打开文件,不能单独使用,需要与其他模式一起使用,a+
'''
file = open('a.txt', 'w')
file.write('helloworld')
file.close()
file = open('a.txt', 'a')
file.write('\nPython')
file.close()
srcFile = open('C:/Users/15191/Desktop/python.jpg', 'rb')
targetFile = open('python.jpg', 'wb')
targetFile.write(srcFile.read())
targetFile.close()
srcFile.close()
'''
文件对象的常用方法
read([size]): 从文件中读取size个字节或者字符的内容返回。若省略[size],则读取到文件末尾,即一次读取文件所有内容
readline(): 从文本文件中读取一行的内容
readlines(): 把文本文件中每一行都作为独立的字符串对象,并将这些对象放入一个列表返回
write(str): 将字符串str内容写入文件
writeline(s_list): 将字符串列表s_list写入文本文件,不添加换行符
seek(offset[, whence]): 把文件指针移动到新的位置,offset表示相对于whence的位置
offset为正表示往结束方向移动,为负往开始方向移动
whence不同的值代表不同含义:
0: 从文件头开始计算(默认值)
1: 从当前位置开始计算
2: 从文件尾开始计算
tell(): 返回文件指针的当前位置
flush(): 把缓冲区的内容写入文件,但不关闭文件
close(): 把缓冲区的内容写入文件,同时关闭文件,释放文件对象相关资源
'''
file = open('a.txt', 'r')
#print(file.read())
#print(file.read(2))
#print(file.readline())
#print(file.readlines())
file.close()
file = open('a.txt', 'a')
#file.write('Java')
lst = ['java', 'C', 'C++', 'C#', 'VB', 'Go']
file.writelines(lst)
file.close()
file = open('a.txt', 'r')
file.seek(2)
print(file.read())
print(file.tell())
file.close()
file = open('b.txt', 'w')
file.write('hello')
file.flush()
file.write('world')
file.close()
'''
with语句
with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的
'''
with open('a.txt', 'r') as file:
print(file.read())
with open('python.jpg', 'rb') as src_file:
with open('pythonCopy.jpg', 'wb') as tar_file:
tar_file.write(src_file.read())
扫码关注公众号“JAVA记录册”
该公众号致力于为大家分享工作中会用到一些简单实用的小知识,而不是那些悬在云端的高大上但又感觉空泛的文章,欢迎大家关注,谢谢!
?
|