一、概述

Python中操作文件是通过file对象来处理的,步骤:

  • 指定文件的路径、操作的模式
  • 对文件进行操作,读或写操作
  • 关闭文件对象
f = open( '文件路径','访问模式')      # 打开文件句柄

//可以用 open和 file来打开文件,open调用的是file,建议使用open函数:

文件路径: 可以是相对或者绝对路径,如不存在的时候会抛异常(IOError)

访问模式:

r	# 只读不能写 (默认),指针在文件的头部  postion=0
r+	# 可读写,写的时候指针在文件的头部   postion=0
a	# 追加写,不能读,  文件不存在会创建文件
a+    # 可读写,追加写,文件不存则创建 
w	# 可写不能读,先清空文件在写入内容,文件不存在则创建
w+	# 可写读,先清空文件在写入内容,文件不存在则创建

常用的方法:

f.read(size)        # 一次性将内容全部读到内存里面,也可指定size大小,返回string类型(换行符)
f.readline()        # 一行一行的读,返回string类型(换行符)
f.readlines()       # 每行是个sting,全部读完,返回一个list
r.write ('内容')     # 写文件
f.writeline('内容')   # 一行一行的写,比w多了换行
f.flush()            # 将文件内容从内存刷到磁盘,不应频繁使用
f.seek()               # offset,设置偏移量,也就是postion的位置
f.tell()              # 返回当前模式下的文件处于的position
f.truncate(size)       # 截断,默认从当前的postion截断,也可以指定size bytes来截断;从哪个postion截断就是后面的内容都不要,只能在写的模式下才能用
f.close()         # 操作完成后都需要关闭文件操作,注意

//文件操作完成后请一定要使用close()方法关闭文件句柄

二、with

with方法是一种安全操作文件的方式,可以管理文件上下文,确保文件无论正确打开与否都close()对象,在python2.7以后还可以同时打开多个文件句柄.

文件处理建议使用with的方法

with open('testfile') as f:
    print f.read()        #所有的行是一个字符串

文件迭代,如果一个文件很大,建议使用迭代的方式

with open('testfile') as f:
    for line in f:       # f是一个可迭代的对象
        print line,

同时打开两个文件,将内容替换

with open('testfile') as f, open('testfile1','w') as f1:
    for line in f:
        lines = line.replace('root', 'new_root')    # 将文件内容修改写如另一个文件,源文件内容不变,可以用做修改文件内容时备份的场景
        f1.write(lines)

with方式进行文件处理等同于:

try:
    f = open('testfile')
finally:                  # 异常清理
    f.close() 

总结:

  • 操作文件尽量使用迭代的方式
  • 尽量使用with的方式管理文件对象的上下文

 

Python基础、文件处理的更多相关文章

  1. python 基础-文件读写'r' 和 'rb'区别

    原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...

  2. Python基础--文件操作和集合

    这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 我们哭了 ...

  3. python基础--文件操作实现全文或单行替换

    python修改文件时,使用w模式会将原本的文件清空/覆盖.可以先用读(r)的方式打开,写到内存中,然后再用写(w)的方式打开. 替换文本中的taste 为 tasting Yesterday whe ...

  4. python基础-文件操作

    一.文件操作 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认模式,文件必须存在,不存在则抛出异 ...

  5. python基础 - 文件读写

    完成功能: 从指定位置读文件到控制台 #! /usr/bin/python # coding=utf- 方法一. try: f = open ('/root/python/file/001.txt', ...

  6. python基础-文件操作(10)

    一.什么是文件 等等这些都叫做文件,各种格式的.但不仅仅限制于这些. 二.文件的作用 大家应该听说过一句话:“好记性不如烂笔头”. 不仅人的大脑会遗忘事情,计算机也会如此,比如一个程序在运行过程中用了 ...

  7. 第3章 Python基础-文件操作&函数 文件操作 练习题

    一.利用b模式,编写一个cp工具,要求如下: 1. 既可以拷贝文本又可以拷贝视频,图片等文件 2. 用户一旦参数错误,打印命令的正确使用方法,如usage: cp source_file target ...

  8. python基础----文件处理

    一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 正趣果上果 Interesting fruit fruit 词:郭婞 曲:陈粒 编曲/混音/和声:燕池 萧: ...

  9. python基础-文件处理与函数

    1. 文件处理 1.1 文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量 2.通过句柄对文件进行操作 3.关闭文件 1.2 文件读取模式r r文本模式的读,在文件不存在,不会创建新文件 f = ...

  10. Python基础——文件操作

    写文件 writefile %%writefile ./data/testFile.txt hello python jin tian tian qi bu cuo open覆盖 txt=open(' ...

随机推荐

  1. HDU 2852 (树状数组+无序第K小)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2852 题目大意:操作①:往盒子里放一个数.操作②:从盒子里扔掉一个数.操作③:查询盒子里大于a的第K小 ...

  2. 转载:CSS计数器的趣味时光之css计算数据

    CSS计数器是“啊太好了,竟不知道CSS可以做这啊”这类非常有趣的众多特性之一.简言之,用CSS使你持续某增加某个量,而无需JavaScript. 简单计数器 我们从这个简单的分页示例开始: 你见到的 ...

  3. topcoder SRM 618 DIV2 WritingWords

    只需要对word遍历一遍即可 int write(string word) { ; ; i < word.length(); ++ i){ cnt+=word[i]-; } return cnt ...

  4. VB远程访问MYSQL代码图解

    首先需要安装MySQL Connector/ODBC 地址:http://dev.mysql.com/downloads/connector/odbc/ 根据自己的系统(运行环境: Win7/XP/W ...

  5. OSG中的HUD

    OSG中的HUD 所谓HUD节点,说白了就是无论三维场景中的内容怎么改变,它都能在屏幕上固定位置显示的节点. 实现要点: 关闭光照,不受场景光照影响,所有内容以同一亮度显示 关闭深度测试 调整渲染顺序 ...

  6. java中的List记录是否完全匹配方法

    今天要说的是给List分组,然后用Map来封装,可能你看了以后还是有一些模糊. 先看一下项目结构图: User类是一个VO类,主要逻辑还是在MapTestBak上面. 运行效果: 原理图: 1.在st ...

  7. 清空highcharts数据

    1:清空highcharts图表的数据我们常用的方法就是remove() var seriesList = chart.series; //获得图表的所有序列 var seriesCount=seri ...

  8. Node.js 手册查询-3-Mongoose 方法

    Mongoose 参考手册 标签(空格分隔): MongoDB Mongoose 是什么? 一般我们不直接用MongoDB的函数来操作MongoDB数据库 Mongose就是一套操作MongoDB数据 ...

  9. Node.js前端自动化工具:gulp

    前端自动化工具 -- gulp 使用简介 gulp是基于流的前端自动化构建工具. 之前也谈到了 grunt的用法,grunt其实就是配置+配置的形式. 而gulp呢,是基于stream流的形式,也就是 ...

  10. JAVA生成条形码

    1.下载生成条形码所需要的jar包barcode4j.jar: 2.java生成条形码代码 import java.awt.image.BufferedImage;import java.io.Fil ...