一.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. 【二叉树的递归】04找出二叉树中路径和等于给定值的所有路径【Path Sum II】

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 给定一个二叉树和一个和,判断这个树 ...

  2. 将tomcat7解压版注册为windows系统服务

    一.修改service.bat文件(...tomcat7\bin\service.bat) 该文件中共修改两处即可 ①:在文件的开头加入以下设置,分别是java的安装路径.Tomcat的安装路径及服务 ...

  3. debian软件安装和卸载

    用root身份执行如下命令: dpkg -l |grep "^rc"|awk '{print $2}' |xargs aptitude -y purge dpkg是Debian P ...

  4. 关系运算符 逻辑运算符 if 语句 switch语句

    1. BOOL类型 BOOL isRightOrNo = YES; isRightOrNo = 56;//可以打印出来,在C语言中,非0即真 printf("%d\n" , isR ...

  5. Dialog 自定义使用3(回调点击事件)

    1 , Dialog布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns ...

  6. [51nod1270] 数组的最大代价(简单dp)

    解题关键:先由贪心的思想得出任何一个位置只能取1或者a[i],然后dp即可. #include<bits/stdc++.h> using namespace std; typedef lo ...

  7. 使用python已知平均数求随机数

    问题描述:产生40个数,范围是363-429之间,平均值为402 思路: 1 产生一个随机数 2 使用平均数减去随机数求出第二个数,生成20组 3 将排序打乱 # -*- coding: cp936 ...

  8. Razor中的 内容标记块语法

    在C#中,有两种方法来进行内容块标记 第一种方式 用@: 来标识 @if (true) { @: 测试内容标记块 @DateTime.Now.ToString() } <hr /> 第2种 ...

  9. 11. CTF综合靶机渗透(四)

    运行环境 Virtualbox (二选一) Vnware Workstation player 通关提示 Enumeration is key Try Harder Look in front of ...

  10. Python版的数据库查询构造器、ORM及动态迁移数据表。

    Orator Orator提供一个简单和方便的数据库数据处理库. 它的灵感来源于PHP的Laravel框架,借助其思想实现了python版的查询构造器和ORM. 这是完整的文档:http://orat ...