Python文件读写常见用法总结

yipeiwu_com6年前Python基础

1. 读取文件

# !/usr/bin/env python
# -*- coding:utf-8 -*-
"""
文件读取三步骤:
  1.打开文件
    f=open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
      mode: r,w,a,b,+
  2.操作文件
    f.read(),把整个文件读入单一字符串
    f.read(N),读取之后的N个字节
    f.readlines(),读取整个文件到字符串列表
    f.readline(),读取下一行
  3.关闭文件
    f.close()
  f.seek(offset),移动文件指针位置
  f.flush(),把缓冲区数据刷到硬盘中
"""
f=open('吻别.txt',encoding='utf-8')
print(f)
data=f.read()
# data=f.readlines()
print(data)
f.close()

2. 写入文件

"""
文件写入三步骤:
  1.打开文件
  2.操作文件
    f.write()
    f.writelines(aList),把列表中所有的字符串写入文件
  3.关闭文件
"""
f=open('test.txt',mode='w',encoding='utf-8')
f.write('line01\n')
f.write('line02\n')
f.close()

3. 文件也是迭代器

# !/usr/bin/env python
# -*- coding:utf-8 -*-
from collections import Iterable
try:
  f=open('吻别.txt',mode='r',encoding='utf-8')
  print(isinstance(f, Iterable)) # True,文件也是迭代器类型
  for line in f:
    print(line,end='')
finally:
  f.close()

4. 使用上下文管理器自动关闭文件

with open('test.txt',mode='w',encoding='utf-8') as f:
  f.write('line01\nline02\n')
with open('test.txt') as f:
  data = f.read()
  print(data)

5. 读写二进制文件

with open('美猴王.jpg',mode='rb') as fin,open('美猴王_copy.jpg',mode='wb') as fout:
  data=fin.read()
  fout.write(data)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对【听图阁-专注于Python设计】的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

解决PyCharm控制台输出乱码的问题

解决PyCharm控制台输出乱码的问题

最近公司新换了台电脑,各种开发环境要重新配置,想想Paas确实还是有市场的,如果有了,这种情况可以省下不少气力。吐槽一下,言归正传 装完python后,继续装好PyCharm。把之前的程...

python tkinter实现界面切换的示例代码

python tkinter实现界面切换的示例代码

跳转实现思路 主程序相当于桌子: import tkinter as tk root = tk.Tk() 而不同的Frame相当于不同的桌布: face1 = tk....

解决Django模板无法使用perms变量问题的方法

解决Django模板无法使用perms变量问题的方法

前言 本文主要给大家介绍了关于Django模板无法使用perms变量的解决方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 解决方法: 首先,在使用Django内置...

python3实现单目标粒子群算法

python3实现单目标粒子群算法

本文实例为大家分享了python3单目标粒子群算法的具体代码,供大家参考,具体内容如下 关于PSO的基本知识......就说一下算法流程 1) 初始化粒子群;   ...

python线程、进程和协程详解

引言 解释器环境:python3.5.1 我们都知道python网络编程的两大必学模块socket和socketserver,其中的socketserver是一个支持IO多路复用和多...