zoukankan      html  css  js  c++  java
  • python 文件操作

    python文件处理:

    能调用方法的都是对象!

    打开一个文件:

    open("文件路径/文件名",‘r’)    以只读的方式打开一个文件

    >>> open('file.txt','r').read()    打开一个文件同时将文件的内容读取出来。
    'When summer comes, every girl will paste sun cream, \nin the purpose of protecting their skin. It is said \n'

    >>> f=open("file.txt",'r')    打开一个文件,创建一个文件对象f
    >>> f.read()
    'When summer comes, every girl will paste sun cream, \nin the purpose of protecting their skin. It is said \n'

    >>> f.close()    关闭文件对象f

    操作文件的几种模式;

    r:只读方式打开一个文件

    w:写方式打开一个文件,如果文件已经存在,会清空文件内容。如果文件不存在,会创建新文件。

    a:以追加方式打开一个文件,不会清空文件内容。

    r+:以读写的方式打开一个文件,这种方式不会清空已经存在的文件的内容。

    w+:以读写的方式打开一个文件,会清空以存在文件里面的内容。

    a+: 以读写的方式打开一个文件,追加模式,不会覆盖清空已存在的文件内容。

    rb:以二进制读写方式打开一个文件,用于处理二进制文件。

    wb:以二进制读写方式打开一个文件,用于处理二进制文件。会清空已存在文件内容

    ab:以二进制读写方式打开一个文件,用于处理二进制文件。追加模式。

    操作文件的常用方法:

    1、read(size)方法:默认如果不加参数会将打开的文件内容全部输出,以字符串的方式读取全部内容,不会分行。

    read(5):如果加了参数,这里是指值输出5个字符,中文指5个汉字,英文指5个字母。

    >>> f.read()
    'When summer comes, every girl will paste sun cream, \nin the purpose of protecting their skin. It is said \n'
    >>> f=open("file.txt",'r')
    >>> f.read(5)
    'When

    2、readline()方法:可以一行一行的读取文件的内容,直至全部输出。

    >>> f=open("file.txt",'r')
    >>> f.readline()        默认不加参数,每行都会全部输出
    'When summer comes, every girl will paste sun cream, \n'
    >>> f=open("file.txt",'r')

    >>> f=open("file.txt",'r')
    >>> f.readline(5)      添加参数之后,会输出参数指定的字符内容。
    'When '
    >>> f.readline(5)
    'summe'

    3、readlines()方法:将文件的所有内容全部读取到一个列表中。

    >>> f=open("file.txt",'r')
    >>> f.readlines()
    ['When summer comes, every girl will paste sun cream, \n', 'in the purpose of protecting their skin. It is said \n']
    >>> type(f.readlines())    可以看到类型是list类型。
    <type 'list'>

    >>> f=open("file.txt",'r')
    >>> f1=f.readlines()
    >>> f1
    ['When summer comes, every girl will paste sun cream, \n', 'in the purpose of protecting their skin. It is said \n']
    >>> for i in f1:    可以使用for循环将readlines()方法生成的列表内容逐行读取出来。
    ... print(i)
    ...
    When summer comes, every girl will paste sun cream,

    in the purpose of protecting their skin. It is said

    4、xreadlines()方法:迭代器,循环一次读取一行,读取文件内容的速度很快,不会把文件内容全部去读到内存中,适合处理大文件。

    >>> f=open("file.txt",'r')
    >>> f1=f.xreadlines()    这里会生成一个迭代器对象f1,可以通过for循环的方式,将迭代器中的内容逐行读取出来。
    >>> for i in f1:
    ...         print(i)
    ...
    aaaaaaaaaaaaaaaaaaaa

    bbbbbbbbbbbbbbbbbbb

    5、write()方法: 将内容写入到文件中,如果是字符串以外的数据格式,需要先将对方转换成字符串格式,才能正常写入。

    >>> f.write('hello world')  向文件中写入内容

    >>> f.flush()      强制刷新使修改直接生效。

    6、tell()方法:  返回一个整数,表示当前文件的指针位置,也就是文件头的比特数。

    >>> f=open("file.txt",'r')
    >>> f.readline()
    'aaaaaaaaaaaaaaaaaaaa\n'
    >>> f.tell()
    21
    >>> f.readline()
    'bbbbbbbbbbbbbbbbbbb\n'
    >>> f.tell()
    41
    >>> f.readline()
    'vvvvvvvvvvvvvvvvvvvvvvv\n'
    >>> f.tell()
    65
    >>> f.readline()
    'fffffffffffffffffffffffff\n'
    >>> f.tell()
    91

    7、seek(offset[,whence])方法:用来移动文件指针,可以将文件的指针移动到文件的不同位置。

    offset:表示开始的偏移量,也就是代表需移动偏移的字节数。单位 比特,可正可负

    0表示是文件头部开始算起,是默认值

    1代表从当前位置开始算起

    2代表文件尾部开始算起

    >>> f=open("file.txt",'r')
    >>> f.readline()
    'aaaaaaaaaaaaaaaaaaaa\n'
    >>> f.tell()
    21
    >>> f.readline()
    'bbbbbbbbbbbbbbbbbbb\n'
    >>> f.tell()
    41
    >>> f.seek(0)
    >>> f.readline()
    'aaaaaaaaaaaaaaaaaaaa\n'
    >>> f.tell()
    21

  • 相关阅读:
    洛谷 P2986 [USACO10MAR]伟大的奶牛聚集Great Cow Gat…(树规)
    STREAMING #5 题解 3.高位网络
    冲刺NOIP2015提高组复赛模拟试题(五) 3.破坏基地
    冲刺NOIP2015提高组复赛模拟试题(五)2.道路修建
    冲刺NOIP2015提高组复赛模拟试题(五)1.数学作业
    洛谷P1186 玛丽卡 spfa+删边
    清北学堂 day6 花
    清北学堂 day6 兔子
    C++ STL 全排列函数
    flash分区的意义
  • 原文地址:https://www.cnblogs.com/qiyuanchang/p/7360763.html
Copyright © 2011-2022 走看看