zoukankan      html  css  js  c++  java
  • python第五堂课:文件的读写

    五一几天在搬家。帝都屁民的悲哀。

    接触过一些语言,shell,python,php等,发现基本上所有的语言类的教程和教学都是,输出,字符串,用户输入,文件控制,语句逻辑以及其他。

    前面已经提过,输出,字符串,用户输入了,今天来搞搞文件控制。

    文件控制整体可以分为以下几种动作,读,写,追加。

    python的读写都是通过一种file object 来实现的,

    当以读模式进行打开文件时,文件处于只读状态,不会变更文件内容。

    当以写模式进行打开文件时,如果有文件,则置空,再往里面写。没有对应的文件,则进行创建。

    当以追加模式打开文件时,如果有文件,则与文件末尾处,进行追加内容,没有对应文件的时候,则进行创建。

    例子1:文件的读。

    #!/bin/env python
    #-*- encodeing:utf-8 -*-
    from sys import argv
    #使用argv读取用户指定的目录, script,file
    = argv
    #建立文件对象,是打开file变量代表的文件。 fo
    = open(file)
    #以读模式打开文件通常是需要输出或这进行处理的。fo.read()是读出全部内容。 fo.read()
    #close是关闭fo这个文件对象。如果文件没有关闭之前,是可以重复进行操作的。 fo.close() 我使用python exp3.py file输出了以下内容
    'c'

    这里的open的用法是这样的:

    open(文件名称,[模式,buffer])

    buffer为缓冲区的大小,0为不缓冲,1为缓冲,>=1,则指定缓冲区的大小。

    例子2:文件的写。

    #!/bin/env python
    #-*- encodeing:utf-8 -*-
    from sys import argv
    script,file = argv
    #获取用户输入的文件名 fo
    = open(file,'w')
    #以下两行为输出到file中的两种方法,1使用文件对象中的write属性,将输入内容输出到文件当中,print 是我忘记从哪儿看到了。呵呵 fo.write(
    "hello world!\n")
    print >> fo,"hello world kairong"
    #这里如果你设置了缓冲区,如果缓冲区没有打满的情况下,这些输入作为临时输入储存在缓冲区中,可以通过fo.flush()强行写入。关闭文件时,会将缓冲区内容写入到文件。
    fo.close() #打开查看。 fo = open(file,'r') fo.read()


    使用方法是,python exp4.py file
    输出内容为:
    hello world!
    hello world kairong

    文件的追加方法,类同写的方式。这里就不举例了。

    就文件打开的模式说明下:

    r,只读模式,如果你没有选择任何打开模式则打开的是只读模式。

    w,写模式,

    a,追加模式。

    b,以二进制文件打开。

    关于文件对象的操作方法和方式有以下几种:

    fo.close() 关闭文件,顺便把缓冲区的内容写入文件,如果有缓冲区的话。

    fo.read()读取,如果read()内没加任何变量,则读出全部内容,如果类似与fo.read(1),则读取当前位置的一个字符。

    >>> file.read()
    'hello world\n'
    >>> file.seek(0,0)
    >>> file.read(1)
    'h'
    >>> file.read(2)
    'el'

    fo.readline()读取当前位置的一行内容。如果添加了任何参数。例如file.readline(1),则读取当前位置的一个字符。

    fo.readlines()将文件所有内容追加到元组当中,如果添加了任何参数,例如file.readlines(1),则仅读取当前位置的一行内容。

    我这里强调下,为什么要说当前位置呢,文件的读取是通过一种类似于游标的方式读取的,如果在文件头,则逐步读入,但是如果我想类似于读取文件最后一个字符的话,就可以将文件的游标重置到文件末尾。然后再继续。关于游标的使用,可以使用file.seek()进行操作,可以自己查看下seek的用法哦。file.tell()可以返回当前游标所处的位置。

    fo.write("abc")将文件写入文件(或者缓冲区。)

    fo.flush()将文件对象中的缓存写入文件。

    fo.close()将文件对象关闭,并将缓存写入文件。

    fo.truncate()清空文件。

  • 相关阅读:
    Rainmeter 雨滴桌面 主题分享
    行人检測之HOG特征(Histograms of Oriented Gradients)
    const和readonly差别
    ADB命令解析
    Java实现 蓝桥杯VIP 算法训练 接水问题
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
    Java实现 蓝桥杯VIP 算法训练 星际交流
  • 原文地址:https://www.cnblogs.com/sageskr/p/3053573.html
Copyright © 2011-2022 走看看