python5分钟,教你使用内置函数open来操作文件

使用内置函数open来操作文件有三步:打开文件,操作文件,关闭文件。

open(file, mode=‘r‘, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file如果只写文件名,比如‘file1.txt‘,则默认是当前路径,如果当前路径没有这个名字的文件,则报错,如果是其他目录的文件,则需要加上文件路径。

mode有4种模式:‘r‘表示只读模式,‘w‘代表只写入模式(如果文件存在,则覆盖掉,不存在则创建),‘x‘表示新创建一个文件,并进入写入模式(如果文件存在,则报错),‘a‘表示追加写入模式,所有写入内容都在文件末尾。打开file有三种模式,‘b‘代表二进制模式,‘t‘代表文本模式,‘+‘表示读写模式。默认文件打开是‘rt‘模式。

encoding如果没传入,则默认是平台当前的编码方式。只在文本模式中需要编码。二进制模式不需要encoding。

buttering,指缓冲,默认是-1,代表

读时是按照指针的顺序,从前往后读,写时,都是写到最后,指针也到了最后。


在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,×××
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容

help(open)
f1 = open(‘hello.txt‘, ‘w‘, encoding=‘utf-8‘)
f1.write(‘hello,lanxing‘) #将字符串写入文件。
f1.close() #关闭文件
f2 = open(‘hello.txt‘, ‘rb‘)
data = f2.read() #read表示读取多少个字符,如果不加参数,则默认读取全部内容。
print(data)
data2 = str(data,encoding=‘utf-8‘)
print(data2)
f2.close()
f3 = open(‘test1.txt‘, ‘wb‘)
# 以二进制模式进行写入操作,write的参数必须是字节形式,所以用bytes将字符串转换成字节。
f3.write(bytes(‘中国人‘, encoding=‘utf-8‘))
f3.close()
f4 = open(‘test1.txt‘, ‘rb+‘)
data4 = f4.read(3) #只读取3个字节
print(data4)
str_data4 = str(data4,encoding=‘utf-8‘)
print(str_data4)
f4.close()
# 一,以下是读写模式,先读再写。
f5 = open(‘test1.txt‘, ‘r+‘, encoding=‘utf-8‘)
# tell告诉当前指针(或叫光标)在哪个位置,一个字节就是一个指针位
print(f5.tell()) # tell
data5 = f5.read(1) # 读取1个字符,utf-8编码中,一个中文字符是3个字节。
print(f5.tell()) # 所以现在是3个指针位
print(data5)
data6 = f5.read(1) # 再读1个字符位。
print(data6)
print(f5.tell()) # 现在指针在第6个字节位处了
f5.seek(0) # 将指针重新调整到起始位置。
f5.write(‘日本人‘) # 写入操作,会在末尾追加,指针调整到最后。
f5.close()
# 二,以下是写读模式,先写再读,即先清空再读。写入的同时,指针就在最后了。
f6 = open(‘test1.txt‘, ‘w+‘, encoding=‘utf-8‘)
data6 = f6.read()
print(data6) #空值,因为先写,已经清空整个文件了。
f6.write(‘中国人‘)
print(f6.tell()) #是9,因为3个汉字是9个字节。
data7 = f6.read() #还是空值,因为现在指针在9,9后面没有数据了。
f6.seek(0) #将指针调到到开始。
data8 = f6.read()
print(data8)
f6.close()
# 三,a+模式,打开时,指针已经在最后了。

打开文件一定要记得关闭文件,最好使用with来打开文件,with打开文件会自动关闭文件

with open(‘test1.txt‘,‘w+‘,encoding=‘utf-8‘) as f:
 f.write(‘中国人‘)
with open(‘test1.txt‘,‘r+‘,encoding=‘utf-8‘) as f1, open(‘test2.txt‘,‘w+‘,encoding=‘utf-8‘) as f2:
#with可以同时打开多个文件。
 for line in f1:
 #将f1的每一行都写入到f2文件中去。
 f2.write(line)

文件的基本操作还有:

flush(), 即时刷新,可以在文件未关闭之前看到文件更新内容,不接参数。

readline(),读取当前指针处的一行内容。

readlines(n),读取当前指针处的n个字符,如果n不写,则默认全读完,如果n小于当前行的字符长度,则读取当前行内容,包括换行符\n,如果n大于当前行的字符长度,则一直到第从当前指针处的第n个字符所在的行,每一行的内容包括换行符作为一个列表的元素,最终返回该列表。

close(),关闭文件

seek(n),调整指针位置

tell(),返回当前指针位置。

truncate(),截取当前指针处之前的字节内容。文件关闭时,就只有截取的内容了。

read(n),读取从当前指针处的多少个字符。返回的是字符串。

write(),写入字符串或字节。

觉得文章还不错的话不妨收藏起来慢慢看,有任何建议或看法欢迎大家在评论区分享讨论!

原文地址:https://blog.51cto.com/14568144/2444300

时间: 2024-08-03 07:28:16

python5分钟,教你使用内置函数open来操作文件的相关文章

python内置函数中的 IO文件系列 open和os

本篇介绍 IO 中的 open 和 os基础用法. 本次用一个游戏登陆 基础界面做引子,来介绍. 实现存储的话,方式是很多的. 比如 存到字典 和列表了,可是字典.列表是临时的,玩网页游戏一次还是可以,如果要是一个反复要用到的一个软件的话,显然就不合适了,比较熟悉的介质有<文件>,对正在的程序来讲,用文件数存储据存到文件当中不是很好的选择.这里有数据库的概念. 本次用文件来存储. 本次内容实现 登陆 验证 登陆验证 形式,必须输入正确的用户名和密码,才可以登陆 一共验证三次.成功即运行程序 

01Python内置函数_集合操作类

basestring basestring() 说明:basestring是str和unicode的超类(父类),也是抽象类, 因此不能被调用和实例化,但可以被用来判断一个对象是否为str或者unicode的实例, isinstance(obj, basestring) 等价于isinstance(obj, (str, unicode)): 版本:python2.3版本以后引入该函数,兼容python2.3以后python2各版本. 注意:python3中舍弃了该函数,所以该函数不能在pytho

open()内置函数的一些操作

f = open('info2.txt','w',encoding='utf-8') #生成文件对象,赋值给f,然后去操作f,文件句柄, #由于windows的机制,默认GBK的格式得转换成utf-8 # 'r'是读一个文件.跟read / r+是可读写(打开读追加) w+是写读(创建文件再去写不常用) a+ 追加读 rb(以二进制去读文件) # 'w'是写,跟write 创建覆盖之前,冲掉之前的,要么读要么写一个文件. # 'a'追加.append,不会冲掉前面的内容,a没有读权限date =

【转】用 PHP 内置函数 file_put_contents 写入文件

PHP 内置函数 file_put_contents 用于写入文件. file_put_contents 函数最简单的写法,可以只用两个参数,一个是文件路径,一个是要写入的内容,语法如下: file_put_contents(filepath,data) 如果文件不存在,file_put_contents 函数会自动创建文件:如果文件已存在,原有文件被重写. 你可以利用 file_put_contents 函数创建并写入一个新文件,或者重写一个原有文件. 下面是一个使用 file_put_con

python内置函数和序列化

修改字符集 全局修改 点击window 针对某一个工程 右键,有一个属性propertes 给某个文件,也就是前面加 也是右键属性,这里就不在说了#模块的和模块的常用方法 至关重要的__init__.py如果想导入成模块,一定要有这个文件 是否为主文件__nameif name == '\main__'如果不是主文件返回模块文件路径+文件名 当前文件 :__doc__返回模块级别的注释,函数级别的注释,是在函数下面加6个引号,中间写注释 __file__:输出当前的路径 函数式编程 参数 def

Golang中的内置函数

??Go中存在着不少内置函数,此类函数并不需要引入相关Package就可以直接使用该类函数.在Go的源码builtin包的builtin.go中定义Go所有的内置函数:但该文件仅仅是定义描述出了所有内置函数,并不包含函数的任何实现代码,该文件除了定义了内置函数还定义了部分内置类型: 内置函数使用 len("123") println("log") fmt.Println("fmt") // 非内置函数使用,调用fmt包中的函数 常用内置函数 cl

[转] Hive 内置函数

原文见:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF 1.内置运算符1.1关系运算符 运算符 类型 说明 A = B                                              所有原始类型                  如果A与B相等,返回TRUE,否则返回FALSE A == B 无 失败,因为无效的语法. SQL使用”=”,不使用”==”. A <> B 所有原始类

linux awk 内置函数详细介绍(实例)

这节详细介绍awk内置函数,主要分以下3种类似:算数函数.字符串函数.其它一般函数.时间函数 一.算术函数: 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y, x ) 返回 y/x 的反正切. cos( x ) 返回 x 的余弦:x 是弧度. sin( x ) 返回 x 的正弦:x 是弧度. exp( x ) 返回 x 幂函数. log( x ) 返回 x 的自然对数. sqrt( x ) 返回 x 平方根. int( x ) 返回 x 的截断至整数的

linux awk 内置函数实例

awk内置函数,主要分4种:算数函数.字符串函数.时间函数.一般函数 一.算术函数 以下算术函数执行与 C 语言中名称相同的子例程相同的操作: 函数名 说明 atan2( y, x ) 返回 y/x 的反正切. cos( x ) 返回 x 的余弦:x 是弧度. sin( x ) 返回 x 的正弦:x 是弧度. exp( x ) 返回 x 幂函数. log( x ) 返回 x 的自然对数. sqrt( x ) 返回 x 平方根. int( x ) 返回 x 的截断至整数的值. rand( ) 返回