打开文件

  使用open函数,语法格式为:open( name[, mode[, buffering]]),name为打开文件名,mode为打开文件方式,buffering控制文件的缓冲。

  mode可选,默认为只读模式,即r, 其中使用的参数有

open函数中mode参数的值
描述
r
w
a 文件末尾追加
b 二进制模式,可添加到其他模式中
+ 读/写模式,可以添加到其他模式中

  buffering可选,0表示输入输出无缓冲; 1表示有缓冲, 使用内存来代替硬盘,只有使用flush或者close时才会更新硬盘数据;大于1表示指定缓冲区大小;小于0表示使用默认的缓冲区大小。

类文件对象中包含一些读方法和写方法以及定位光标,关闭类文件对象等方法。

类文件对象方法
read 读取字符
readline 读取一行
readlines 读取整个文件的所有行并将其作为列表返回
write 写入字符
writelines 将字符串列表写入文件,不过程序不会增加新行,需要自己添加
seek 定位光标位置,
close 关闭文件对象

注意,写文件没有writeline方法,因为可以用write方法。

关闭文件

  写过的文件总是应该关闭,是因为python可能会缓存写入的数据,如果程序因为某些原因崩溃了,那么数据根本就不会写入文件。要确保文件被关闭,应该使用try/finally语句,并且在finally子句中调用close方法。

f = open('c:\file.txt')
try:
f.write('close the file')
finally:
f.close()

此外,还可以使用with语句,可以打开文件并将其赋值到变量上。之后就可以将数据写入文件。文件在语句结束后会自动关闭,即使是由于异常引起的结束也是如此。

with open('c:\file.txt') as f:
f.write('close the file')

  

  

操作文件

打开文件得打类文件对象以后就可以使用类文件对象方法进行读写操作了。

例如,f = open('file.xt', 'r') 以只读方式打开文件,然后可以str = f.read(n)表示从打开的文件中读取n个字符

循环处理文件每个字符

f = open(filename)
while True:
char = f.read(1)
if not char: break
print(char)
f.close()

循环处理文件每行

f = open(filename)
while True:
line = f.readline()
if not line:
break
print(line)
f.close()

如果文件不是很大,可以将直接读取整个文件,然后进行处理

f = open(filename)
for char in f.read():
print(char)
f.close()
f = open(filename)
for line in f.readline():
print(line)
f.close()

文件迭代器操作文件

在python中,文件对象是可以迭代的,这意味着可以直接在for循环中使用它们,从而对它们进行迭代。

f = open(filename)
for line in f:
print(line)
f.close()

sys.stdin也是可以迭代的,就像其他的文件对象一样。如果想要迭代标准输入中的所有行,可以按如下形式使用

import sys
for line in sys.stdin:
print(line)

Python文件方法的更多相关文章

  1. C++ 调用Python文件方法传递字典参数并接收返回值

    首先本地需要安装有Python环境,然后在c++工程中包含Python的头文件,引用Python的lib库. //python 初始化 Py_Initialize(); if (!Py_IsIniti ...

  2. Python学习(16)File(文件)方法

    Python File(文件) 方法 file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 序号 方法及描述 1 file.close() 关闭文件.关闭后文件不能再进行读 ...

  3. [Python]读写文件方法

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

  4. python文件的md5加密方法

    本文实例讲述了python文件的md5加密方法.分享给大家供大家参考,具体如下: 一.简单模式: from hashlib import md5 def md5_file(name): m = md5 ...

  5. Python 文件 writelines() 方法

    概述 Python 文件 writelines() 方法用于向文件中写入一序列的字符串. 这一序列字符串可以是由迭代对象产生的,如一个字符串列表. 换行需要制定换行符 \n. 语法 writeline ...

  6. Python 文件 write() 方法

    概述 Python 文件 write() 方法用于向文件中写入指定字符串. 在文件关闭前或缓冲区刷新前,字符串内容存储在缓冲区中,这时你在文件中是看不到写入的内容的. 语法 write() 方法语法如 ...

  7. Python 文件 truncate() 方法

    概述 Python 文件 truncate() 方法用于截断文件并返回截断的字节长度. 指定长度的话,就从文件的开头开始截断指定长度,其余内容删除:不指定长度的话,就从文件开头开始截断到当前位置,其余 ...

  8. Python 文件 tell() 方法

    描述 Python 文件 tell() 方法返回文件的当前位置,即文件指针当前位置. 语法 tell() 方法语法如下: fileObject.tell() 参数 无 返回值 返回文件的当前位置. 实 ...

  9. Python 文件 seek() 方法

    概述 Python 文件 seek() 方法用于移动文件读取指针到指定位置. 语法 seek() 方法语法如下: fileObject.seek(offset[,whence]) 参数 offset  ...

随机推荐

  1. poj 1463(树形dp)

    题目链接:http://poj.org/problem?id=1463 思路:简单树形dp,如果不选父亲节点,则他的所有的儿子节点都必须选,如果选择了父亲节点,则儿子节点可选,可不选,取较小者. #i ...

  2. java抽象类的使用

    当多个类中出现相同功能,但是功能主体不同,这是可以进行向上抽取.这时,只抽取功能定义,而不抽取功能主体. 抽象:看不懂. 抽象类的特点:1,抽象方法一定在抽象类中.2,抽象方法和抽象类都必须被abst ...

  3. php操作数据库找不到列

  4. http://jingyan.baidu.com/album/d8072ac47baf0eec95cefdca.html?picindex=4

    http://jingyan.baidu.com/album/d8072ac47baf0eec95cefdca.html?picindex=4

  5. 贪心 赛码 1001 Movie

    题目传送门 /* 贪心:官方题解: 首先我们考虑如何选择最左边的一个区间 假设最左边的区间标号是i, 那选择的另外两个区间的左端点必定要大于Ri 若存在i之外的j, 满足Rj<Ri, 那么另外两 ...

  6. 产品原型设计工具 Balsamiq Mockups(转)

    Balsamiq Mockups是产品设计师绘制线框图或产品原型界面的利器.在产品设计的需求阶段,低保真的线框图或者草图设计介于产品流程设计与高保真DEMO设计之间,在Balsamiq Mockups ...

  7. windows phone7 豆瓣FM

        HubTile参考了下,就做了一个豆瓣的FM应用 豆瓣的API在百度里查一下. 整个应用很简单,无非是解析豆瓣的JSON数据,然后读取,下载图片和歌单

  8. Codeforces Round #213 (Div. 2) B. The Fibonacci Segment

    #include <iostream> #include <algorithm> #include <vector> using namespace std; in ...

  9. BZOJ3994: [SDOI2015]约数个数和

    Description  设d(x)为x的约数个数,给定N.M,求     Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试数据的组数. 接下来的T行,每行两个整数N.M.   O ...

  10. QAction QActionGroup QMenu 使用方法

    在Qt中,QAction,QActionGroup 和 QMenu类用用来操作软件的菜单栏的,比如很多软件都有文件菜单,里面有打开,保存,另存为之类的选项,在Qt中就是通过这几个类来实现的.或者是在菜 ...