读取文件

解决方案:

最简单的就是一次性读取所有的内容放在一个大字符串中

  1. all_the_text=open('thefile.txt').read()
  2. all_the_data=open('abinfile','rb').read()

为了安全起见,最好将打开的文件对象指定一个名字,这样操作完成后可以迅速关闭文件

  1. file_object=open('thefile.txt')
  2. try:
  3. all_the_file=file_object.read();
  4. finally:
  5. file_object.close();

更简单的方法是逐行读取文本文件内容,将读取的数据放置于一个字符串列表中

  1. file_object=open('thefile.txt')
  2. try:
  3. list_of_all_the_lines=file_object.readlines()
  4. finally:
  5. file_object.close();

这样每一行的末尾都会有'\n',如果不想这样,有一些替代的方法

  1. list_of_all_the_lines=file_object.read().splitlines()
  2. list_of_all_the_lines=file_object.read().split('\n')
  3. list_of_all_the_lines=[L.rstrip('\n') for L in file_object]

最简单的逐行处理文本文件的方法是用for循环

  1. for line in file_object:
  2. print line

删除行尾的'\n'只需要添加

  1. line=line.rstrip('\n')

写入文件

解决方案:

最简单的方法:

  1. open('e://thefile.txt','w').write(all_the_text)
  2. open('abinfile','wb').write(all_the_data)

有时候需要写入的文件不在一个大字符串中,而在一个字符串列表中,这时候需要用到writelines方法

  1. list_of_text_strings=['abc\n','defg\n','hijkl hahaha\n']
  2. file_object=open('e://thefile.txt','w')
  3. file_object.writelines(list_of_text_strings)
  4. file_object.close()

搜索和替换文件中的文本(将某个字符串变为另一个)

解决方案:

使用字符串对象的replace方法

  1. import os,sys
  2. nargs=len(sys.argv)
  3. if not 3<=nargs<=5:
  4. print "usage: %s search_text repalce_text [infile [outfile]]" % \
  5. os.path.basename(sys.argv[0])
  6. else:
  7. stext=sys.argv[1]
  8. rtext=sys.argv[2]
  9. input_file=sys.stdin
  10. output_file=sys.stdout
  11. if nargs> 3:
  12. input_file=open(sys.argv[3])
  13. if nargs> 4:
  14. output_file=open(sys.argv[4])
  15. for s in input_file:
  16. output_file.write(s.replace(stext,rtext))
  17. output_file.close()
  18. input_file.close()

我试验了一次,发现这里的s是读取一行进行一次替换然后将替换好的行写入文件

从文件中读取指定的行

解决方案:

使用标准库linecache模块

  1. import linecache
  2. theline=linecache.getline('thefile.txt',line_number)

处理文件中每个单词

解决方案:

使用两重循环,一重处理行,一重处理单词

  1. for line in open('thefile.txt'):
  2. for word in line.split():
  3. print word

遍历目录树

解决方案:

使用os模块中的os.walk

  1. import os,fnmatch
  2. def all_files(root,patterns='*',single_level=False,yield_folders=False):
  3. patterns=patterns.split(';')
  4. for path,subdir,files in os.walk(root):
  5. if yield_folders:
  6. files.extend(subdir)
  7. files.sort()
  8. for name in files:
  9. for pattern in patterns:
  10. if fnmatch.fnmatch(name,pattern):
  11. yield os.path.join(path,name)
  12. break
  13. if single_level:
  14. break
  15.  
  16. for path in all_files('e://',single_level=True):
  17. print path

从指定搜索路径寻找文件

解决方案:

循环指定的搜索路径中的目录

  1. import os
  2. def search_file(filename,search_path,pathsep=os.pathsep):
  3. for path in search_path.split(pathsep):
  4. canditate=os.path.join(path,filename)
  5. if os.path.isfile(canditate):
  6. return os.path.abspath(canditate)
  7. return None
  8. search_path='h://'
  9. find_file=search_file('wubi*',search_path)
  10. if find_file:
  11. print "File found at %s" % find_file
  12. else:
  13. print "File not found"

Python文件处理(1)的更多相关文章

  1. Linux下Python 文件内容替换脚本

    Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...

  2. 【Python文件处理】递归批处理文件夹子目录内所有txt数据

    因为有个需求,需要处理文件夹内所有txt文件,将txt里面的数据筛选,重新存储. 虽然手工可以做,但想到了python一直主张的是自动化测试,就想试着写一个自动化处理数据的程序. 一.分析数据格式 需 ...

  3. Python文件使用“wb”方式打开,写入内容

    Python文件使用"wb"方式打开,写入字符串会报错,因为这种打开方式为:以二进制格式打开一个文件只用于写入.如果该文件已存在则将其覆盖.如果该文件不存在,创建新文件. 所以写入 ...

  4. Python 文件操作函数

    这个博客是 Building powerful image classification models using very little data 的前期准备,用于把图片数据按照教程指示放到规定的文 ...

  5. python文件I/O(转)

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

  6. python 文件操作总结

    Python 文件I/O 本章只讲述所有基本的的I/O函数,更多函数请参考Python标准文档. 打印到屏幕 最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式.此函数把你 ...

  7. Python基础篇【第2篇】: Python文件操作

    Python文件操作 在Python中一个文件,就是一个操作对象,通过不同属性即可对文件进行各种操作.Python中提供了许多的内置函数和方法能够对文件进行基本操作. Python对文件的操作概括来说 ...

  8. python文件和元组

    python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...

  9. Python文件基础

    ===========Python文件基础========= 写,先写在了IO buffer了,所以要及时保存 关闭.关闭会自动保存. file.close() 读取全部文件内容用read,读取一行用 ...

  10. python文件打包格式,pip包管理

    1..whl是python文件的一种打包格式, 在有些情况下,可以将文件的后缀名改为.zip并解压 2.cmd中,提示pip版本太低,先升级pip   pip install --upgrade pi ...

随机推荐

  1. Muduo 网络编程示例之零:前言

    陈硕 (giantchen_AT_gmail)Blog.csdn.net/Solstice Muduo 全系列文章列表: http://blog.csdn.net/Solstice/category/ ...

  2. 安装ubuntu时的注意事项----个人小总结

    今天重装了一次ubuntu,以前是别人帮我装的,而这次是我自己照着网上教程装的. 这个教程还是挺不错的,我就是照着这个装成功的 http://jingyan.baidu.com/article/60c ...

  3. Apache Common StringUtils工具类

    1.List转换成字符串并加入分隔符 public String listToString(List list, char separator) { return org.apache.commons ...

  4. android 仿小米icon处理,加阴影和边框

    本人自己在做一个launcher,所以须要处理icon,加阴影和边框等.这仅仅是一种处理方法,其它的处理方法类似. 源码: https://github.com/com314159/LauncherI ...

  5. redis缓存工具Jedis进行跨jvm加锁(分布式应用)--不幸暂弃用--能够做第三方锁使用

    近期使用redis碰到了多个并发处理同一个缓存的情况.在这样的情况下须要进行加锁机制. 本来想使用java自带的ReadWriteLock进行设置读写锁,这也是上家公司使用的方法. 后来经过商讨,给予 ...

  6. Jquery - checked 全选与取消全选

    html: <!DOCTYPE html> <html> <head> <title>节点列表</title> <link rel=& ...

  7. UISearchBar去除底部黑线问题

    有时我们在设置搜索框的时候底部会出现一条黑线,要 去除这黑线只需设置. [self.searchBar setBackgroundImage:[UIImage new]];

  8. 让Solr返回JSON数据

    http://localhost:1985/solr/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on& ...

  9. Debian为程序添加一个开始菜单,debian添加sublime开始菜单.

    下了一个 '绿色' 的程序,想要加到开始菜单里面. 怎么做呢? 我这里以sublime2做例 去http://www.sublimetext.com/2 下载了linux 64位, 解压放到了下面的文 ...

  10. Android 传感器开发

    如今的智能手机都配备了各种各样的传感器,本文将介绍Android SDK提供的传感器开发接口,并通过简单实例展示怎样使用这些接口. Andriod SDK传感器相关类 android SDK提供的与传 ...