一.python  文件访问
1.在python中要访问文件,首先要打开文件,也就是open
r:  只读
w:  只写 ,文件已存在则清空,不存在则创建
a:追加 ,写到文件末尾。如果文件存在,则在文件最后去追
    加。文件不存在就去创建   
+-:更新(可读可写)
 
r+ :以读写模式打开
w+ :以读写模式打开(参见w)
a+:以读写模式打开(参见a)
rb:以二进制读模式打开
wb:以二进制写模式打开
ab:以二进制追加模式打开(参见a)
rb+:以二进制读写模式打开(参见r+)
wb+:以二进制读写模式打开(参见w+)
ab+: 以二进制读写模式打开(参见a+)
 
2.打开文件。open打开文件 read读文件,close关闭文件
 
import codecs
fd = codecs.open('2.txt')
print fd.read()
fd.close()
 
>>> 11111
2222
33333
aaaaa
bbbbb
cccccc
 
3.查看文件有哪些方法
 
import codecs
fd = codecs.open('b.txt')
print fd.read()
print dir(fd)
fd.close()
 
>>> 11111
2222
333333
['close', 'closed', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'mode', 'name', 'newlines', 'next', 'read', 'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']
 
1>fd.read() 方法,read()方法读取的是整篇文档。
 
fd = codecs.open('2.txt')
text = fd.read()
print type(text)
 
>>><type 'str'>
 
 
2>replace()函数替换文件中的某个元素。打开文件,读取后,对整个字符串进行操作.把2.txt 文件中的1替换成z
 
fd = codecs.open('2.txt')
a1 = fd.read()
print a1
a2 = a1.replace('1','z')
print a2
 
>>> 11111
2222
33333
aaaaa
bbbbb
cccccc
 
zzzzz
2222
33333
aaaaa
bbbbb
cccccc
 
3> 写文件,codecs.open()函数,避免文件乱码
 
fd = codecs.open('3.txt','w')
fd.write('liuzhenchuan\n')
fd.write('hello world\n')
fd.write('xiaban\n')
fd.close()
 
>>> liuzhenchuan
hello world
xiaban
 
 
4>fd.readlines()方法,读取文件,最后把文件每行内容作为一个字符串放在一个list中
 
fd = open('3.txt')
print fd.readlines()
fd.close()
 
>>> ['liuzhenchuan\n', 'hello world\n', 'xiaban\n']
 
 
5>fd.readline()方法,读取文件,读取文件一行,类型为字符串
>>> l
 
 
6>#fd.readline()方法,读取文件一行内容,返回一个字符串.          # fd.next()方法,读取文件下一行内容,返回一个字符串
 
fd = codecs.open('3.txt','r')
print fd.readline()
print fd.next()
fd.close()
 
>>> liuzhenchuan
 
    hello world
 
 
7>#write()方法,必须传入一个字符串. 
fd = codecs.open('5.txt','w+')
fd.write('a\nb\nc\n')
fd.close()
 
>>> a
    b
    c
 
 
#writelines()方法,必须传入一个列表/序列
fd = codecs.open('6.txt','w')
fd.writelines(['123\n','234\n','345\n'])
fd.close()
 
>>> 123
    234
    345
 
 
8>with用法,不需要用fd.close()关闭文件
with codecs.open('3.txt','rb') as fd:
    print fd.read()
    fd.close()
 
>>> liuzhenchuan
hello world
xiaban
 
 
9>打印文件行号和文件内容
with codecs.open('2.txt') as fd:
    for line,value in enumerate(fd):
        print line,value,
 
>>> 0 liuzhenchuan
    1 hello world
    2 xiaban
 
 
10>过滤文件某行的内容
with codecs.open('3.txt') as fd:
    for line,value in enumerate(fd):
        if line == 3-2:
            print value
 
>>> hello world
 
 
11>导入linecache模块,使用linecache.getline()方法,获取文件固定行的内容
import linecache
count = linecache.getline('3.txt',1)
print count
 
>>> liuzhenchuan
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

python基础 3.0 file 读取文件的更多相关文章

  1. C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结。

    C++/Php/Python/Shell 程序按行读取文件或者控制台方法总结. 一.总结 C++/Php/Python/Shell 程序按行读取文件或者控制台(php读取标准输入:$fp = fope ...

  2. python基础(内置函数+文件操作+lambda)

    一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...

  3. Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作

    本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...

  4. python基础之 编码进阶,文件操作和深浅copy

    1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unic ...

  5. Python基础(5)_文件操作

    一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 二.文件打开模式 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文 ...

  6. python基础三(集合、文件)

    1.集合定义 集合天生能去重,且与字典一样,无序.集合用大括号括起来,里面的元素之间用逗号分隔,要跟字典区分开. 集合定义方法:s=set() #定义一个空集合 s={'1','a','b','c', ...

  7. C++/Php/Python/Shell 程序按行读取文件或者控制台

    写程序经常需要用到从文件或者标准输入中按行读取信息,这里汇总一下.方便使用 1. C++ 读取文件 #include<stdio.h> #include<string.h> i ...

  8. Python跳过第一行读取文件内容

    Python编程时,经常需要跳过第一行读取文件内容.比较容易想到是为每行设置一个line_num,然后判断line_num是否为1,如果不等于1,则进行读取操作.相应的Python代码如下: inpu ...

  9. Python基础【day03】:文件操作(七)

    零.本节内容 1.文件常用操作汇总 2.打开文件 3.操作文件 4.关闭文件 一.文件常用操作汇总 二.打开文件 1.普通打开模式 r,英文:read,只读模式(默认) w,英文:write,只写模式 ...

随机推荐

  1. BZOJ3812 清华集训2014 主旋律

    直接求出强联通生成子图的数量较难,不妨用所有生成子图的数量减去非强联通的. 非强联通生成子图在所点后满足编号最小的点所在的强联通分量不是全集. 由于$n$很小,我们可以考虑状态压缩. 对于点集$S$, ...

  2. [HDU5290]Bombing plan

    vjudge sol 树DP. 首先把模型转换成:每个点可以控制与它距离不超过\(w_i\)的点,先要求选出数量最少的点控制所有点. 设\(f[i][-100...100]\)表示\(i\)号点向上还 ...

  3. 洛谷P2878 [USACO07JAN]保护花朵Protecting the Flowers

    题目描述 Farmer John went to cut some wood and left N (2 ≤ N ≤ 100,000) cows eating the grass, as usual. ...

  4. 标准模板库(STL)学习指南之sort排序

    对于程序员来说,数据结构是必修的一门课.从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来.幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思 ...

  5. 如何避免这个delete from tb_name不带条件的操作

    那么,我们如何避免这个delete from tb_name不带条件的呢?其实是有办法的,但这只针对运维DBA或者DBA在操作时候有用,但对于PHP和JAVA程序,它的连接操作方式,就没办法避免了 s ...

  6. 机器学习:Jupyter Notebook中Matplotlib的使用

    一.matplotlib绘制折线图 matplotlib绘图的实质是折线图,将所有的点用直线连接起来,由于距离比较密,看起来像是个平滑的曲线: import matplotlib as mpl:加载m ...

  7. ObservableCollection和List的区别总结

    一.继承的类和接口,还有它们的方法不同 1)ObservableCollection比较简单,继承了Collection, INotifyCollectionChanged, INotifyPrope ...

  8. JAVA相关资料

    http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ http://www.cnblo ...

  9. AngularJs(Part 11)--自定义Directive

    先对自定义Directive有一个大体的映像 myModule.directive('myDirective',function(injectables){ var directiveDefiniti ...

  10. 通过HBase Shell与HBase交互

    出处:http://www.taobaotest.com/blogs/1604 业务开发测试HBase之旅二:通过HBase Shell与HBase交互 yedu 发表于:2011-10-11 浏览: ...