美文网首页想法简友广场
python基础——file读取和操作小记

python基础——file读取和操作小记

作者: 刘年 | 来源:发表于2020-03-18 19:36 被阅读0次

    1、读取文件

    • 1、read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示
    • 2、readlines读取数据
    for line in f.readlines():
        print(line.strip()) # 把末尾的'\n'删掉
    
    • 3、非法编码
      文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:
    >>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore')
    
    • 4、你可以反复调用write()来写入文件,但是务必要调用f.close()来关闭文件。所有要for循环时,可以考虑不用with open,直接先open一个文件,然后循环写入
    • 5、如果文件已存在,会直接覆盖(相当于删掉后新写入一个文件)。如果我们希望追加到文件末尾怎么办?可以传入'a'以追加(append)模式写入。

    2、StringIOh和BytesIO

    StringIO顾名思义就是在内存中读写str。
    BytesIO与StringIO类似,不做说明

    • 1、写入
      要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:
    >>> from io import StringIO
    >>> f = StringIO()
    >>> f.write('hello')
    5
    >>> f.write(' ')
    1
    >>> f.write('world!')
    6
    >>> print(f.getvalue())
    hello world!
    
    • 2、读取
      要读取StringIO,可以用一个str初始化StringIO,然后,像读文件一样读取:
    >>> from io import StringIO
    >>> f = StringIO('Hello!\nHi!\nGoodbye!')
    >>> while True:
    ...     s = f.readline()
    ...     if s == '':
    ...         break
    ...     print(s.strip())
    ...
    Hello!
    Hi!
    Goodbye!
    

    StringIO和BytesIO是在内存中操作str和bytes的方法,使得和读写文件具有一致的接口。

    4、操作文件和目录

    # 查看当前目录的绝对路径:
    >>> os.path.abspath('.')
    '/Users/michael'
    # 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:
    >>> os.path.join('/Users/michael', 'testdir')
    '/Users/michael/testdir'
    # 然后创建一个目录:
    >>> os.mkdir('/Users/michael/testdir')
    # 删掉一个目录:
    >>> os.rmdir('/Users/michael/testdir')
    

    两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符

    part-1\part-2
    

    同样的道理,要拆分路径时,也不要直接去拆字符串,而要通过os.path.split()函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名

    >>> os.path.split('/Users/michael/testdir/file.txt')
    ('/Users/michael/testdir', 'file.txt')
    

    os.path.splitext()可以直接让你得到文件扩展名,

    >>> os.path.splitext('/path/to/file.txt')
    ('/path/to/file', '.txt')
    

    相关文章

      网友评论

        本文标题:python基础——file读取和操作小记

        本文链接:https://www.haomeiwen.com/subject/ydyfyhtx.html