基本函数

定义

python内置了open()函数来操作文件,open()函数的定义为:

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

Open file and return a corresponding file object. If the file cannot be opened, an OSError is raised.

file is a path-like object giving the pathname (absolute or relative to the current working directory) of the file to be opened or an integer file descriptor of the file to be wrapped. (If a file descriptor is given, it is closed when the returned I/O object is closed, unless closefd is set to False.)

mode is an optional string that specifies the mode in which the file is opened. It defaults to 'r' which means open for reading in text mode. Other common values are 'w' for writing (truncating the file if it already exists), 'x' for exclusive creation and 'a' for appending (which on some Unix systems, means that all writes append to the end of the file regardless of the current seek position). In text mode, if encoding is not specified the encoding used is platform dependent: locale.getpreferredencoding(False) is called to get the current locale encoding. (For reading and writing raw bytes use binary mode and leave encoding unspecified.) The available modes are:

操作模式

Character Meaning

'r' open for reading (default)

'w' open for writing, truncating the file first

'x' open for exclusive creation, failing if the file already exists

'a' open for writing, appending to the end of the file if it exists

'b' binary mode

't' text mode (default)

'+' open a disk file for updating (reading and writing)

'U' universal newlines mode (deprecated)

读操作

直接读取

要注意在使用完后需要close

#读取文件
def readDemo1(self):
#以只读模式打开文件,如果打开失败有error输出
try:
f = open('D:\\readfiledemo.txt', 'r')
print(f.read())
#要用finally来关闭文件!
finally:
if f:
f.close()

更简洁的读取

使用with的方式可以避免忘记close

def readDemo2(self):
try:
#使用with的方式可以不用主动close
with open('D:\\readfiledemo.txt', 'r') as f:
print(f.read())
except:
pass

按照行读取

上面的操作方式如果是文件太大那么直接程序就异常或者崩溃,并且通常使用时候按照行读取也更为实用

def readDemo3(self):
try:
with open('D:\\readfiledemo.txt', 'r') as f:
#按照行读取
for line in f.readlines():
#去除行尾的\n
print(line.strip())
except:
pass

读取二进制文件:

#二进制的方式读取,例如图片音乐文件等
def readDemo4(self):
try:
#一次性的读取,文件太大就会崩溃了!!!
with open('D:\\error.bak', 'rb') as f:
print(f.read())
except:
pass

以指定编码字符集来读取

通常很多文件有编码字符集的要求,如果不使用指定格式那么就会有乱码。如果不需要提示异常那么直接配置为忽略模式即可

#指定字符集的方式读取,并且忽略错误
def readDemo5(self):
try:
with open('D:\\example.log', 'r', encoding='utf-8', errors='ignore') as f:
#按照行读取
for line in f.readlines():
#去除行尾的\n
print(line.strip())
except:
pass

写操作

写操作和读操作基本上一致,需要注意的有两点:

  • 如果使用的是非with的方式,那么要注意在close操作中才会写入文件,否则是没有提交的
  • 写的时候要注意模式是追加还是覆盖
def wirteDemo1(self):
try:
#w:覆盖式写入
#a:追加式写入
with open('D:\\example.log', 'w', encoding='utf-8', errors='ignore') as f:
f.write('this a 例子')
f.write('\rthis a 例子 追加')
except:
pass

内存读写

内存读写通过StringIO和BytesIO来操作,前者操作字符流,后者操作二进制流。使用和open类似

Python读写文件基础.py的更多相关文章

  1. [Python]读写文件方法

    http://www.cnblogs.com/lovebread/archive/2009/12/24/1631108.html [Python]读写文件方法 http://www.cnblogs.c ...

  2. Python 读写文件的正确方式

    当你用 Python 写程序时,不论是简单的脚本,还是复杂的大型项目,其中最常见的操作就是读写文件.不管是简单的文本文件.繁杂的日志文件,还是分析图片等媒体文件中的字节数据,都需要用到 Python ...

  3. Python读写文件

    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...

  4. Python读写文件实际操作的五大步骤

    Python读写文件在计算机语言中被广泛的应用,如果你想了解其应用的程序,以下的文章会给你详细的介绍相关内容,会你在以后的学习的过程中有所帮助,下面我们就详细介绍其应用程序. 一.打开文件 Pytho ...

  5. python的re模块一些方法 && Tkinter图形界面设计 && 终止python运行函数 && python读写文件 && python一旦给字符串赋值就不能单独改变某个字符,除非重新给变量赋值

    Tkinter图形界面设计见:https://www.cnblogs.com/pywjh/p/9527828.html#radiobutton 终止python运行函数: 采用sys.exit(0)正 ...

  6. python 读写文件和设置文件的字符编码

    一. python打开文件代码如下: f = open("d:\test.txt", "w") 说明:第一个参数是文件名称,包括路径:第二个参数是打开的模式mo ...

  7. Python学习入门基础教程(learning Python)--5.2 Python读文件基础

    上节简单的说明了一下Pyhon下的文件读写基本流程,从本节开始,我们做几个小例子来具体展示一下Python下的文件操作,本节主要是详细讲述Python的文件读操作. 下面举一个例子,例子的功能是读取当 ...

  8. 从用python自动生成.h的头文件集合和类声明集合到用python读写文件

    最近在用python自动生成c++的类.因为这些类会根据需求不同产生不同的类,所以需要用python自动生成.由于会产生大量的类,而且这些类是变化的.所以如果是在某个.h中要用include来加载这些 ...

  9. 【Python开发】python读写文件,和设置文件的字符编码比如utf-8

    一. python打开文件代码如下: f = open("d:\test.txt", "w") 说明: 第一个参数是文件名称,包括路径: 第二个参数是打开的模式 ...

随机推荐

  1. Win10还原被Windows Defender隔离的文件

    Win10最新版本的Windows Defender隔离/删除的文件没有还原的选项,导致很多破解文件或是注册机直接隔离,到威胁历史记录中去却无法恢复.经过各个尝试,到微软官方论坛中也尝试了很多方法,后 ...

  2. centos7 安装Node.js并配置为全局可用

    本文Node.js版本为5.12.0,登录 https://nodejs.org/dist/v5.12.0/,需指定其他版本的话可以直接修改版本号进行登录. 为了方便使用tar命令对文件进行解压,我们 ...

  3. python r(不进行转义)的用法

      第一种用法,直接针对字符串:r‘E:\ui\bbq.txt’ 第二种用法,针对变量名:r'' + 变量名

  4. 记一次http接口格式摸索

    有一个需求,需要用到内部通讯工具的一个ERP转发接口,虽然有接口文档,但是对中文的编码格式没有提示,中间几经周折,最后才想起来通过F12查看提供的测试接口发送请求时的数据格式来分析,经过解析中文只有被 ...

  5. appium java 在android7.0真机上测试程序时报错command failed shell "ps 'uiautomator'"的解决方式

    1.找到appium的安装目录下的adb.js文件,目录为:Appium\node_modules\appium\node_modules\appium-adb\lib 2.打开adb.js,找到如下 ...

  6. [java,2018-01-16] HttpClient发送、接收 json 请求

    最近需要用到许多在后台发送http请求的功能,可能需要发送json和xml类型的数据. 就抽取出来写了一个帮助类: 首先判断发送的数据类型是json还是xml: import org.dom4j.Do ...

  7. python生成器异步使用

    import dis,time # 反汇编 import threading def request(): print('start request') v = yield print(v) def ...

  8. spring的IOC 的底层实现原理

    IOC:Inversion of Control  控制反转. 指的是 对象的创建权反转(交给)给 Spring. 作用是实现了程序的解耦合.

  9. Java base64 图片编码转换

    package com.test; import org.junit.Test; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encode ...

  10. 42.纯 CSS 创作一个均衡器 loader 动画

    原文地址: https://segmentfault.com/a/1190000015157160 感想: 不难,最简单的动画.拓展地址: https://scrimba.com/c/cWqVv9hd ...