5、文件处理

用来处理系统中的文件内容

什么情况下需要处理文件?

§读取配置文件

§读取数据信息

§分析处理日志文件

§存入数据到文件

打开文件

打开文件方式一:

open(‘filename‘, [‘mode‘])

 打开文件方式二:

file (‘filename‘,[‘mode‘])

mode:

  a : append

  w: write and replace old one

  r: read , default  mode

  b: binary files

  +:可读写模式(r+:即可读又可追加。w+:即可读又可覆写。a+:可读可追加)

如:

>>> open(‘/root/file.txt‘)
<open file ‘/root/file.txt‘, mode ‘r‘ at 0x7fa536269540>
>>> open(‘/root/file.txt‘,‘w‘)
<open file ‘/root/file.txt‘, mode ‘w‘ at 0x7fa5362694b0>
>>> file(‘/root/file.txt‘,‘a‘)
<open file ‘/root/file.txt‘, mode ‘a‘ at 0x7fa536269540>

 

读取一个文件(readline,readlines):

readline一行一行读文件,直到读完为止;

readlines从当前行读到文尾。

  1. >>> a=open(‘/root/file.txt‘)
  2. >>> a.readline()
  3. ‘1:root:x:0:0:root:/root:/bin/bash\n‘
  4. >>> a.readline()
  5. ‘2:bin:x:1:1:bin:/bin:/sbin/nologin\n‘
  6. >>> a.readlines()
  7. [‘3:daemon:x:2:2:daemon:/sbin:/sbin/nologin\n‘,‘4:adm:x:3:4:adm:/var/adm:/sbin/nologin\n‘,‘5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n‘]
  8. >>> a.readline()
  9. ‘‘

write()  写一行

>>> a=open(‘/root/file.txt‘,‘a‘)

>>> a.write(‘6:mysql:x:4:7:lp:/var/spool/lpd:/sbin/nologin\n‘)

>>> a.close()

truncate(n)   文件内容只保留2个字符

>>> a=open(‘/root/file.txt‘,‘a‘)

>>> a.truncate(2)

>>> a.close()

seek(n)    光标回到文件开始处第n个字符,如seek(0)则回到开头

>>> a.seek(0)

>>> a.readline()

‘root:x:0:0:root:/root:/bin/bash\n‘

小练习:完整打印一个文件

  1. #!/usr/bin/python
    file=open(‘/root/file.txt‘,‘r‘)
    whileTrue:
            line = file.readline()
            if len(line)==0:break
            print line,

小练习:打印文件,并利用split(‘:‘),实现类似awk的功能:

  1. #!/usr/bin/python
    file=open(‘/root/file.txt‘,‘r‘)
    whileTrue:
            line = file.readline()
            if len(line)==0:break
            newline = line.split(‘:‘)
            print newline[0],‘--‘,newline[1]
    
    [[email protected] python_scripts]# python 8file.py
    root -- x
    bin -- x
    daemon -- x
    adm -- x
    lp -- x

小练习:

员工信息存在文件 emp.info 中,读取文件,列出文件中员工id,根据员工id输出该员工详细信息

  1. [[email protected] python_scripts]# cat emp.info
    01      lk      18610314061     it
    02      tom     13539393939     net
    03      jack    15093949348     mark
    04      james   13892387464     sale
  1. #!/usr/bin/python
    file=open(‘/root/python_scripts/emp.info‘,‘r‘)
    emp_ids=[]
    whileTrue:
            line=file.readline()
            if len(line)==0:break
            line=line.split()
            emp_ids.append(line[0])
    print emp_ids
    
    whileTrue:
            id = raw_input(‘input [id] to show info:‘)
            file.seek(0)
            whileTrue:
                    line=file.readline()
                    if len(line)==0:
                            print ‘We dont have id ‘,id
                            break
                    if id == line.split()[0]:
                            print line
                            file.seek(0)
                            id = raw_input(‘input [id] to show info:‘)
时间: 2024-11-29 12:57:17

5、文件处理的相关文章

最佳vim技巧

最佳vim技巧----------------------------------------# 信息来源----------------------------------------www.vim.org         : 官方站点comp.editors        : 新闻组http://www.newriders.com/books/opl/ebooks/0735710015.html : Vim书籍http://vimdoc.sourceforge.net/cgi-bin/vim

Mac下获取AppStore安装包文件路径

本文介绍了Mac下如何找到AppStore下载的安装包路径,以及如何提取出来供以后使用的相关步骤,希望对大家有所帮助. 通过远在大洋彼岸的苹果服务器下载东西,确实有够慢啊!AppStore更甚:甚至都经常提示连不上服务器,而有些软件呢,还必须从AppStore下载安装,所以没办法,谁让上了苹果的贼船呢!公司的网速更是不敢恭维,以至于基本上不下东西,除非像这次一样:手贱的把iPhone6升级到8.2.2了,然后Xcode6.1.1真机调试不成了,所以需要下个Xcode6.2.昨天刚更新的Xcode

微信文件传输助手文件夹在哪?一起来找找

微信文件传输助手是微信电脑版与手机微信之间相互传输图片等文件的好工具,但很多童鞋都找不到微信文件传输助手文件夹在哪,就让我们一起找找吧 1.先说说手机微信文件传输助手文件夹在哪吧 文件夹路径为/Tencent/MicroMsg/Download/ 2.电脑版微信文件传输助手文件夹在:/微信安装保存目录/wechat files/微信号/ 也可以点击接收到的图片下载保存到相应位置即可

GitHub限制上传大于100M的单个大文件

工作中遇到这个问题,一些美术资源..unitypackage文件大于100M,Push到GitHub时被拒绝.意思是Push到GitHub的每个文件的大小都要求小于100M. 搜了一下,很多解决办法只是把这些超过100M的大文件从本地版本库中移除,使得Push可以成功.但这并没有解决如何上传大文件到GitHub的问题. 解决办法是使用Git LFS. 用法参考:http://blog.csdn.net/tyro_java/article/details/53440666 按照以上方法设置好后,就

Linux 将文件夹下的所有文件复制到另一个文件里

如何将文件夹/home/work下的文件复制到/home/temp里面? 使用命令: cp -R /home/work/* /home/temp *表示所有文件 但是/home/work 下的隐藏文件都不会被拷贝 更好的复制的方法是用"."代替"*"就好了. cp -R /home/work/.  /home/temp 将一个文件夹复制到另一个文件夹下,例如将/home下的work文件夹复制到temp下面 命令为: cp -R /home/work  /home/t

Maven中,pom.xml文件报错

一:错误消息,如下图: aus 原因是本地仓库在org.codehaus.plexus:plexus-uils:pom:3.0.20下面没有jar文件,只有一个plexus-utils-3.0.20.pom.lastUpdated,如下图: 解决:将该文件夹删掉,然后右击项目:Maven->Update Project就可以了 若pom.xml里面还有类型的报错,就像这样解决就OK了

java读文件

java.io.*; public abstract class Reader implements Readable,Closeable{}     public class BufferedReader extends Reader{         public BufferedReader(Reader in);创建一个使用默认大小输入缓冲区的缓冲字符输入流.         public BufferedReader(Reader in, int sz);创建一个使用指定大小输入缓冲区

PHP拷贝目录下的所有文件

//目录拷贝函数到任意目录function dir1($filename,$dest){ static $dirname; $dirname.=$dest; //连接头(第一层目录) static $dir; //中间变量 if(file_exists($filename)){ //如果文件存在 if(is_dir($filename)){ //如果是目录,则先创建目录然后遍历 $dirnames=basename($filename); //取最后的目录或者文件名,链接到要转移到的第一层目录

万家报账平台没有“上传文件”按钮的解决办法

在有的电脑没有"上传文件"的按钮? 第一步:首先检查浏览器设置. 第二步:找到IE的Internet选项菜单,开启菜单栏的根据下列方面找,如下图: 第三步:找到Internet选项后,点击,选择安全选项卡,并点击"自定义级别" 第四步:找到"将文件上载到服务器时包含本地目录路径"选择"启用".然后点击确定关闭IE,重启打开. 第五步:更新浏览器的flash版本.在百度中搜索"flash player官网"即

通过jQuery Ajax使用FormData对象上传文件

转自:http://www.cnblogs.com/labnizejuly/p/5588444.html FormData对象,是可以使用一系列的键值对来模拟一个完整的表单,然后使用XMLHttpRequest发送这个"表单". <form id="uploadForm" enctype="multipart/form-data"> <input id="file" type="file"