Python文件处理(1)
读取文件
解决方案:
最简单的就是一次性读取所有的内容放在一个大字符串中
all_the_text=open('thefile.txt').read()
all_the_data=open('abinfile','rb').read()
为了安全起见,最好将打开的文件对象指定一个名字,这样操作完成后可以迅速关闭文件
file_object=open('thefile.txt')
try:
all_the_file=file_object.read();
finally:
file_object.close();
更简单的方法是逐行读取文本文件内容,将读取的数据放置于一个字符串列表中
file_object=open('thefile.txt')
try:
list_of_all_the_lines=file_object.readlines()
finally:
file_object.close();
这样每一行的末尾都会有'\n',如果不想这样,有一些替代的方法
list_of_all_the_lines=file_object.read().splitlines()
list_of_all_the_lines=file_object.read().split('\n')
list_of_all_the_lines=[L.rstrip('\n') for L in file_object]
最简单的逐行处理文本文件的方法是用for循环
for line in file_object:
print line
删除行尾的'\n'只需要添加
line=line.rstrip('\n')
写入文件
解决方案:
最简单的方法:
open('e://thefile.txt','w').write(all_the_text)
open('abinfile','wb').write(all_the_data)
有时候需要写入的文件不在一个大字符串中,而在一个字符串列表中,这时候需要用到writelines方法
list_of_text_strings=['abc\n','defg\n','hijkl hahaha\n']
file_object=open('e://thefile.txt','w')
file_object.writelines(list_of_text_strings)
file_object.close()
搜索和替换文件中的文本(将某个字符串变为另一个)
解决方案:
使用字符串对象的replace方法
import os,sys
nargs=len(sys.argv)
if not 3<=nargs<=5:
print "usage: %s search_text repalce_text [infile [outfile]]" % \
os.path.basename(sys.argv[0])
else:
stext=sys.argv[1]
rtext=sys.argv[2]
input_file=sys.stdin
output_file=sys.stdout
if nargs> 3:
input_file=open(sys.argv[3])
if nargs> 4:
output_file=open(sys.argv[4])
for s in input_file:
output_file.write(s.replace(stext,rtext))
output_file.close()
input_file.close()
我试验了一次,发现这里的s是读取一行进行一次替换然后将替换好的行写入文件
从文件中读取指定的行
解决方案:
使用标准库linecache模块
import linecache
theline=linecache.getline('thefile.txt',line_number)
处理文件中每个单词
解决方案:
使用两重循环,一重处理行,一重处理单词
for line in open('thefile.txt'):
for word in line.split():
print word
遍历目录树
解决方案:
使用os模块中的os.walk
import os,fnmatch
def all_files(root,patterns='*',single_level=False,yield_folders=False):
patterns=patterns.split(';')
for path,subdir,files in os.walk(root):
if yield_folders:
files.extend(subdir)
files.sort()
for name in files:
for pattern in patterns:
if fnmatch.fnmatch(name,pattern):
yield os.path.join(path,name)
break
if single_level:
break for path in all_files('e://',single_level=True):
print path
从指定搜索路径寻找文件
解决方案:
循环指定的搜索路径中的目录
import os
def search_file(filename,search_path,pathsep=os.pathsep):
for path in search_path.split(pathsep):
canditate=os.path.join(path,filename)
if os.path.isfile(canditate):
return os.path.abspath(canditate)
return None
search_path='h://'
find_file=search_file('wubi*',search_path)
if find_file:
print "File found at %s" % find_file
else:
print "File not found"
Python文件处理(1)的更多相关文章
- Linux下Python 文件内容替换脚本
Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...
- 【Python文件处理】递归批处理文件夹子目录内所有txt数据
因为有个需求,需要处理文件夹内所有txt文件,将txt里面的数据筛选,重新存储. 虽然手工可以做,但想到了python一直主张的是自动化测试,就想试着写一个自动化处理数据的程序. 一.分析数据格式 需 ...
- Python文件使用“wb”方式打开,写入内容
Python文件使用"wb"方式打开,写入字符串会报错,因为这种打开方式为:以二进制格式打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. 所以写入 ...
- Python 文件操作函数
这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文 ...
- python文件I/O(转)
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
- python 文件操作总结
Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...
- Python基础篇【第2篇】: Python文件操作
Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...
- python文件和元组
python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...
- Python文件基础
===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...
- python文件打包格式,pip包管理
1..whl是python文件的一种打包格式, 在有些情况下,可以将文件的后缀名改为.zip并解压 2.cmd中,提示pip版本太低,先升级pip pip install --upgrade pi ...
随机推荐
- Web Api Route 注册要放在 Mvc Route 注册前
今天想研究一下Web Api,写了一个测试Api,打开网站后浏览一下,可是却提示找不到方法,刚开始以为哪里配置错了,可找了半天也没见. 因为我是在一个现有Mvc站点做的Demo,所以打算新建一个Mvc ...
- IE读取并显示本地图像文件的方法
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 戴尔CEO:我们将专注于企业 而非手机业务
9月13日消息,据国外媒体报道,戴尔公司董事长兼首席执行官迈克尔·戴尔(Michael Dell)周五接受了CNBC采访,谈了他对戴尔未来的打算.此前一天,迈克尔·戴尔提出的以250亿美元将戴尔私有化 ...
- getParameter
近期学习JAVA的WEB开发,遇到Request中相关的getParameter方法问题.在网上找了一下.自己整理,以备以后查用. getParameter得到的都是String类型的.或者是用于读取 ...
- js中的总结汇总(以后的都收集到这篇)
点1:js中的比较字符串是否相等,js中是用"=="这个来判断是否相等,这点跟java中不一样,java中是.equals()这种方法. 在之前写的ajax的demo中,因为用了. ...
- hibernate报错
报错二:java.lang.ExceptionInInitializerError java.lang.ExceptionInInitializerError at com.java1234.serv ...
- PHP学习笔记8-文件操作
在data文件中写入数据: <?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/6/29 * Time: 17 ...
- 【 D3.js 入门系列 — 2 】 绑定数据和选择元素
1. 如何绑定数据 D3 有一个很独特的功能:能将数据绑定到 DOM 上,也就是绑定到文档上.这么说可能不好理解,例如网页中有段落元素<p>,我们可以将整数 5 与 <p>绑定 ...
- POJ 1041 John's trip 无向图的【欧拉回路】路径输出
欧拉回路第一题TVT 本题的一个小技巧在于: [建立一个存放点与边关系的邻接矩阵] 1.先判断是否存在欧拉路径 无向图: 欧拉回路:连通 + 所有定点的度为偶数 欧拉路径:连通 + 除源点和终点外都为 ...
- VS Code开发调试ASP.NET Core 1.0
VS Code开发调试ASP.NET Core 1.0 使用VS Code开发调试ASP.NET Core 1.0,微软在今天凌晨发布了.NET Core 1.0,ASP.NET Core 1.0 与 ...