一.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. 【转】C++11 标准新特性:Defaulted 和 Deleted 函数

    原文链接http://www.ibm.com/developerworks/cn/aix/library/1212_lufang_c11new/ 本文将介绍 C++11 标准的两个新特性:defaul ...

  2. Python TCP通信网络编程

    最近在看廖雪峰老师的基础教程(http://www.liaoxuefeng.com/),今天实现了一下简单Python的Socket的网络编程. 1. Socket网络编程 Socket是网络编程的一 ...

  3. shader学习推荐

    <DirectX 9.0 3D游戏开发编程基础> 当您理解了如何实现顶点着色器和像素着色器之后,接下来您可能想进一步了解使用这两种着色器能够实现哪些效果. 最好的方式就是研究一下现有的各种 ...

  4. 逐步改用 IronPython 开发你的 ASP.NET 应用程序

    IronPython for ASP.NET 的 CTP 已经发布有一段时间了,我们在看了官方提供的范例之后,相信对一个 ASP.NET 应用程序中完全使用 IronPython 开发还是有一些担心的 ...

  5. 构建嵌入式小型Linux系统

    构建嵌入式小型Linux系统 摘要:用buildroot构建x86的交叉编译工具链:裁减linux内核,尽可能做到最小:手工构建根文件系统:安装qemu虚拟机,仿真新配置的Linux系统:为新配置的L ...

  6. JS性能之滚动条之外的其他部分

    问题: 如果一个页面宽高比较大,也就是页面需要滚动条来查看其他页面内容,这时候,在滚动条之外的其他部分,是依然处于运行状态. 比如那部分有视频播放,则那些视频虽然在当前窗口看不到,但它们还是会处于播放 ...

  7. bzoj 4006 管道连接 —— 斯坦纳树+状压DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4006 用斯坦纳树求出所有关键点的各种连通情况的代价,把这个作为状压(压的是集合选择情况)的初 ...

  8. bzoj 2716 天使玩偶 —— K-D树

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2716 果然和 bzoj 2648 是一样的吧: 只是数组要迷之开大,3e5+5 会RE? 代 ...

  9. sysbench安装、使用

    二.编译安装 编译非常简单,可参考 README 文档,简单步骤如下:   cd/tmp/sysbench-0.4.12-1.1./autogen.sh./configure --with-mysql ...

  10. Poj1050_To the Max(二维数组最大字段和)

    一.Description Given a two-dimensional array of positive and negative integers, a sub-rectangle is an ...