打开文件

  使用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. Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2)C. Bear and Poker

                                                  C. Bear and Poker                                     ...

  2. 利用SQL语句查询一个数据库中的所有表

    SQL  :  select * from information_schema.tables ORACLE: select table_name from user_tables ACCESS: s ...

  3. eclipse下导入工程的小问题

  4. node相关--代码共享

    代码共享问题: 是否值得在两个环境中运行同一份代码: //看项目 依赖的API是否在两个环境中都有或有替代: 浏览器提供的标准API:XMLHttpRequest.WebSocket.DOM.canv ...

  5. 简单几何(圆与多边形公共面积) UVALive 7072 Signal Interference (14广州D)

    题目传送门 题意:一个多边形,A点和B点,满足PB <= k * PA的P的范围与多边形的公共面积. 分析:这是个阿波罗尼斯圆.既然是圆,那么设圆的一般方程:(x + D/2) ^ 2 + (y ...

  6. 概率 Gym 100502D Dice Game

    题目传送门 /* 题意:两个人各掷两个骰子,给出每个骰子的最小值和最大值,其余值连续分布 问两人投掷,胜利的概率谁大 数据小,用4个for 把所有的可能性都枚举一遍,统计每一次是谁胜利 还有更简单的做 ...

  7. BZOJ3024 : [Balkan2012]balls

    问题1: ans=max(sum[n]-(sum[i]-sum[j-1])+a[i]*(i-j+1)) =max(sum[n]-sum[i]+sum[j-1]+a[i]*(i+1)-a[i]*j) = ...

  8. c/c++ 笔试面试题

    #include <iostream> using namespace std; class A { public: void sayHi(){ cout<<"hel ...

  9. ubuntu中的Wine详解

    什么是wine?(转自百度百科,具体看百科) wine,是一款优秀的Linux系统平台下的模拟器软件,用来将Windows系统下的软件在Linux系统下稳定运行,该软件更新频繁,日臻完善,可以运行许多 ...

  10. 【BZOJ】1878: [SDOI2009]HH的项链(树状数组)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1878 我太弱了,看题解才过的. 一开始看到此题,我想了想在线做法,但之后觉得这个想法可能是错的:维护 ...