zoukankan      html  css  js  c++  java
  • python中的文件读写(open()函数、with open('file_directory','r') as f:、read()函数等)

    python中也有文件读写,通过调用内置的读写函数。可以完成文件的打开/关闭、读、写入、追加等功能。

    open()函数

    open()函数为python中的打开文件函数,使用方式为:
    

    f = open("[文件绝对路径]",'[文件使用模式') 以 f = open('/home/user/lina/info_lina.txt','r')为例,我们在linux环境中以r(只读模式)打开/home/user/lina/info_lina.txt的文件,此处路径也可以为相对路径,相对于本程序的路径。

    >>> f =  open('/home/user/lina/info_lina.txt','r')
    >>> print(f.read())
    ---- info of lina ----
    Name : lina
    age : 23
    f.close()  #在使用open函数打开文件时,使用完后记得关闭
    

    with open() as f :

    使用with open() as f : 相对于直接使用open()打开文件,会好用很多,你不用担心忘记调用f.close()关闭文件,会自动给你关闭。使用模式为:
    

    with open('文件路径','使用模式') as f : 以 with open('/home/user/lina/info_lina.txt','w') as f : 为例,在linux环境下以w(读写模式)打开文件,该模式下如果文件存在就直接打开,如果不存在就创建文件。
    with还可以同时打开多个文件,with open('file1') as obj1, open('file2') as obj2:

    >>> with open('/home/user/lina/info_lina.txt','w') as f:
    >>> f.write('\nJob : model')
    

    其他的打开模式

    打开方式 描述
    r 只读模式,文件的指针将会放在文件的开头,为默认模式。只能用read()函数读
    rb 同上,b表示以二进制格式打开
    r+ 读写模式,打开一个文件可读可写。可用read()函数读,也可用write()写入
    rb+ 二进制模式打开文件,读写模式
    w 打开一个文件只用于写入,如果文件存在就覆盖,不存在就创建新文件。同理以上w+ wb+
    a 打开一个文件往该文件的最后追加内容,所以指针在文件的末尾,同理当文件不存在时创建一个文件。同理a+ ab+

    read()、read(size)、readline()、readlines()的区别和使用

    我们都知道read()函数是打开文件后用来读取文件内容的。但是必须要注意的是read()函数会一次将文件内容全部读取到内存如果文件太大,你的内存就爆了!

    • 所以read()函数一般用与读小文件。
    • read(size)可以读取指定size字节的内容,常见在socket网络编程中,一个包大小为8192(即8K)当你读取内容传输时,最好小于这个大小,当然你可以重复调用read(size)读取完文件。
    • readline()每次会读取一行数据,同样可以循环调用该函数,直至读取完文件。
    • readlines()会一次性把文件读完,返回一个列表,每一行为列表中的一个元素,for line in f.readlines()可循环列表。同read()使用时注意文件大小。

    强烈建议:读取文件时使用for line in f:这样的循环去读取,内容会一条一条的被读取到内存。

    >>> for line in f:
    ...     print(line)
    
    人生还有意义。那一定是还在找存在的理由
  • 相关阅读:
    arduino入门学习实现语音控制LED灯
    c# 实现串口编程-操作LED屏幕
    腾讯地图 获取各种情况的总距离
    js播放wav文件,兼容主流浏览器,兼容多浏览器
    工厂方法模式
    依赖倒转模式
    设计模式——开放封闭原则
    设计模式——单一职责原则
    策略模式
    简单工厂模式
  • 原文地址:https://www.cnblogs.com/shiqi17/p/9275006.html
Copyright © 2011-2022 走看看