打开文件

  使用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. wp8 入门到精通 WebClient Post

    WebClient wc = new WebClient(); var URI = new Uri("http://your_uri_goes_here"); //If any e ...

  2. JavaBeans、EJB和POJO详解

    转自:http://developer.51cto.com/art/200906/130814.htm J2EE学习者越来越多,J2EE本身技术不断在发展,涌现出各种概念,本文章试图从一种轻易理解的角 ...

  3. Android SeekBar自定义使用图片和颜色显示

    案例使用的图片如下:                            1.在res/drawable目录下新增一个xml风格文件,seekbar_define_style.xml ? 1 2 3 ...

  4. POJ1191 棋盘分割(DP)

    化简一下那个方差得到:$$\sqrt\frac{(\Sigma_{i=1}^nx_i)-n\bar x^2}{n}$$ 除了$\Sigma_{i=1}^nx_i$这部分未知,其余已知,而那部分显然越大 ...

  5. SplendidCRM 如何添加及使用中文语言包

    SplendidCRM 功能很强大,也支持多国语言,但关于中文语言安装的介绍在网上一直都找到,自已摸索了一下,成功使SplendidCRM应用中文,以下是安装方法. 版本号:SplendidCRM 7 ...

  6. RN组件之Switch与Picker

    一.Switch选择开关控件 1.该组件为Android/IOS通用的两种状态的开关组件 2.属性方法 (1)disabled bool:如果该值为true,用户就无法点击switch开关,默认为fa ...

  7. 网页制作常见的问题(怎样兼容IE6/IE7/火狐浏览器)

    1.IE6双边距问题? 在IE6的浏览器中明明设置的是10px的margin却为什么显示的是20px的margin其实这个Ie6的一个双边距BUG 例如: <style type="t ...

  8. java编译自动化

    java编译自动化 http://h2ofly.blog.51cto.com/6834926/1545452?utm_source=tuicool&utm_medium=referral

  9. hdu 3415

    单调队列即保持队列中的元素单调递增(或递减)的这样一个队列,可以从两头删除,只能从队尾插入.单调队列的具体作用在于,由于保持队列中的元素满足单调性,对于上述问题中的每个j,可以用O(1)的时间找到对应 ...

  10. hdu I NEED A OFFER!

    这道题是道很基本的0/1背包的问题,为了使解题很简单一点,可以将题目中要求的最大概率转换成不能录取的最小概率,这样1-dp[n]即为至少有一个offer的最大概率.状态方程 为:dp[j]=min{d ...