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 ...
随机推荐
- Muduo 网络编程示例之零:前言
陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/ ...
- 安装ubuntu时的注意事项----个人小总结
今天重装了一次ubuntu,以前是别人帮我装的,而这次是我自己照着网上教程装的. 这个教程还是挺不错的,我就是照着这个装成功的 http://jingyan.baidu.com/article/60c ...
- Apache Common StringUtils工具类
1.List转换成字符串并加入分隔符 public String listToString(List list, char separator) { return org.apache.commons ...
- android 仿小米icon处理,加阴影和边框
本人自己在做一个launcher,所以须要处理icon,加阴影和边框等.这仅仅是一种处理方法,其它的处理方法类似. 源码: https://github.com/com314159/LauncherI ...
- redis缓存工具Jedis进行跨jvm加锁(分布式应用)--不幸暂弃用--能够做第三方锁使用
近期使用redis碰到了多个并发处理同一个缓存的情况.在这样的情况下须要进行加锁机制. 本来想使用java自带的ReadWriteLock进行设置读写锁,这也是上家公司使用的方法. 后来经过商讨,给予 ...
- Jquery - checked 全选与取消全选
html: <!DOCTYPE html> <html> <head> <title>节点列表</title> <link rel=& ...
- UISearchBar去除底部黑线问题
有时我们在设置搜索框的时候底部会出现一条黑线,要 去除这黑线只需设置. [self.searchBar setBackgroundImage:[UIImage new]];
- 让Solr返回JSON数据
http://localhost:1985/solr/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on& ...
- Debian为程序添加一个开始菜单,debian添加sublime开始菜单.
下了一个 '绿色' 的程序,想要加到开始菜单里面. 怎么做呢? 我这里以sublime2做例 去http://www.sublimetext.com/2 下载了linux 64位, 解压放到了下面的文 ...
- Android 传感器开发
如今的智能手机都配备了各种各样的传感器,本文将介绍Android SDK提供的传感器开发接口,并通过简单实例展示怎样使用这些接口. Andriod SDK传感器相关类 android SDK提供的与传 ...