栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python文件读写

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python文件读写

python文件读写

目录
  • python文件读写
    • 1 打开文件
    • 2 关闭文件
      • 2.1 在with as 代码块中关闭文件
    • 3 读写文本文件
    • 4 读写二进制文件
    • 5 python读写文件应用

1 打开文件
open(file, mode='r', encoding=None, errors=None)

1.file参数,用于表示要打开的文件, 可以是字符串或整数。 如果file是字符串, 则表示文件名, 文件名既可以是当前目录的相对路径, 也可以是绝对路径; 如果file是整数, 则表示一个已经打开的文件。
2.mode参数用于设置文件打开模式, 用字符串表示, 例如rb表示以只读模式打开二进制文件。 用于设置文件打开模式的字符串中的每一个字符都表示不同的含义, 对这些字符的具体说明如下。
t: 以文本文件模式打开文件。
b: 以二进制文件模式打开文件。
r: 以只读模式打开文件。
w: 以只写模式打开文件, 不能读内容。 如果文件不存在, 则创建文件; 如果文件存在, 则覆盖文件的内容。
x: 以独占创建模式打开文件, 如果文件不存在, 则创建并以写入模式打开; 如果文件已存在, 则引发FileExistsError异常。
a: 以追加模式打开文件, 不能读内容。 如果文件不存在, 则创建文件; 如果文件存在, 则在文件末尾追加。
+: 以更新( 读写) 模式打开文件, 必须与r、 w或a组合使用, 才能设置文件为读写模式。
3.encoding用来指定打开文件时的文件编码, 默认是UTF-8编码, 主要用于打开文本文件。
4.errors参数用来指定在文本文件发生编码错误时如何处理。 推荐errors参数的取值为’ignore’, 表示在遇到编码错误时忽略该错误, 程序会继续执行, 不会退出。

2 关闭文件
 在打开文件后, 如果不再使用该文件, 则应该将其关闭, 会用到close()方法。
2.1 在with as 代码块中关闭文件
with open(f_name) as f:
	content = f.read()
	print(content)
 with as提供了一个代码块, 在as后面声明一个资源变量, 在with as代码块结束之后自动释放资源。
3 读写文本文件
read(size=-1) : 从文件中读取字符串, size限制读取的字符数, size=-1指对读取的字符数没有限制。
readline(size=-1) : 在读取到换行符或文件尾时返回单行字符串。 如果已经到文件尾, 则返回一个空字符串。 size是限制读取的字符数,size=-1表示没有限制。
readlines() : 读取文件数据到一个字符串列表中, 每一行数据都是列表的一个元素。
write(s) : 将字符串s写入文件中, 并返回写入的字符数。
writelines(lines) : 向文件中写入一个字符串列表。 不添加行分隔符, 因此通常为每一行末尾都提供行分隔符。
flush() : 刷新写缓冲区, 在文件没有关闭的情况下将数据写入文件中。
4 读写二进制文件
read(size=-1) : 从文件中读取字节, size限制读取的字节数, 如果size=-1, 则读取全部字节。
readline(size=-1) : 从文件中读取并返回一行。 size是限制读取的行数, 如果size=-1, 则没有限制。
readlines() : 读取文件数据到一个字节列表中, 每一行数据都是列表的一个元素。
write(b) : 写入b字节, 并返回写入的字节数。
writelines(lines) : 向文件中写入一个字节列表。 不添加行分隔符, 因此通常为每一行末尾都提供行分隔符。
flush( ) : 刷新写缓冲区, 在文件没有关闭的情况下将数据写入文件中。
5 python读写文件应用
改变yolo数据集标签类别

# 读取txt文件将每行第一个数取反
def rename(path):
    files = os.listdir(path)
    for file in files:
        with open(os.path.join(path, file), 'r') as f:
            orign_lines = f.readlines()
        len(orign_lines)
        list = []
        with open(os.path.join(path, file), 'w') as out:
            for i in range(len(orign_lines)):
                list.append(orign_lines[i])
                data = list[i].split()
                if data[0] == '1':
                    data[0] = '0'
                else:
                    data[0] = '1'    
                s = data[0] + ' ' + data[1] + ' ' + data[2] + ' ' + data[3] + ' ' + data[4]
                s = str(s)
                out.write(s + 'n')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/987344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号