python基础文件操作

怎么在已有内容的文件中修改或者添加内容

模式描述
r以只读方式打开文件,可读文件信息
w以写方式打开文件,向文件写入信息。文件存在则覆盖
a已追加模式打开文件(指针指向末尾)
r+以读写方式打开文件,对文件读写操作
w+消除文件内容,然后以读写方式打开文件
a+以读写方式打开文件,将指针移到末尾
b以二进制模式打开文件。只对Windows和Dos有效
方法
  • f.readline():逐行读取文件 (或者 for i in open(‘path’))
  • f.writelines():多行写入
  • f.seek(偏移量,选项)
这个例子可以充分的解释前面使用r+这个模式的时候,
为什么需要执行f.read()之后才能正常插入f.seek(偏移量,选项)
选项=0,表示将文件指针指向从文件头部到“偏移量”字节处
选项=1,表示将文件指针指向从文件的当前位置,向后移动“偏移量”字节
选项=2,表示将文件指针指向从文件的尾部,向前移动“偏移量”字节

偏移量:正数表示向右偏移,负数表示向左偏移
  • f.flush():将修改写到文件中
  • f.tell():获取指针的位置
文件查找和替换(正则表达式)
基本正则语法
1.始终 
    字符串开始用^   字符串结尾用$

2.重复次数
    *:(0~无穷)<=> {0,}
    +: (1~无穷)<=> {1,}
    ?: (0,1)<=> {0,1}
    {}: 范围(比如:ab{3,5} <=> abbb~abbbbb
3.其他
    |: 或(比如:(b|cd)ef <=> bef,cdef
    .: 可代替任何字符 (比如:^.{3}$ 表示3个字符长度的任意字符串)
    []: 表示该范围的字符可以出现 (比如:^[a-zA-z] 表示一个以字母开头的字符串)
    \: 转义符 在'^.$()|+?\'这些字符前加转义字符,[]中不需要加(\d <=>[0-9], \D <=>[^/d]非数字, \s <=>空白字符, \w <=>单词字符,任何数字字母和下划线
    (): 表示一个分组
    
统计文件中关键字个数
法一:
#!/usr/bin/python
import re
f = open('/tmp/test.txt')
source = f.read()
f.close()
r = r'hello'
s = len(re.findall(r,source))
print s

法二:
import re
fp = file("/tmp/test.txt",'r')
count = 0
for s in fp.readlines():
li = re.findall("hello",s)
if len(li)>0:
count = count + len(li)
print "Search",count, "hello"
fp.close()

去掉文件中的空行和带’#'的注释行
f = open('test.txt')
result = list()
for line in f.readlines():                                # 逐行读取数据
line = line.strip()                                #去掉每行头尾空白
if not len(line) or line.startswith('#'):     # 判断是否是空行或注释行
continue                                   #是的话,跳过不处理
result.append(line)                            #保存
result.sort()                                              #排序结果
print result
open('cdays-4-result.txt','w').write('%s' % '\n'.join(result))               #保存入结果文件
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值