美文网首页python
python(19):文件和异常(1)------读取及写入文件

python(19):文件和异常(1)------读取及写入文件

作者: Z_bioinfo | 来源:发表于2022-04-10 21:04 被阅读0次

    1.从文件中读取数据

    假设现在有一个存储圆周率的txt文件


    image.png
    with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:#open()函数,打开文件,里面是文件路径加文件名,window系统用反斜杠(\),linux系统用斜杠(/)
        contents = file_object.read()#read()函数,读取文件
        print(contents)
    3.1515926535
       8979323846
       2643383279
    
    ===================================
    #发现最后一行出现空格,因为read()函数到达文件末尾时返回一个空字符串,这个空字符串显示出来时就是一个空行,用rstrip()函数删除末尾空行
    with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
        contents = file_object.read()
        print(contents.rstrip())
    3.1515926535
       8979323846
       2643383279
    ========================================
    #逐行读取,使用for循环,发现空白行更多了,因为每行的末尾都有一个看不见的换行符,print语句也会加上一个换行符,因此每行末尾都有两个换行符,一个来自文件,另一个来自print语句
    
    with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
        for line in file_object:
            print(line)
    3.1515926535
    
       8979323846
    
       2643383279
    
    =========================================
    消除多余空白行,用rstrip()函数
    with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
        for line in file_object:
            print(line.rstrip())
    3.1515926535
       8979323846
       2643383279
    =====================================
    #创建一个包含文件各行内容的列表
    with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
        lines = file_object.readlines()#readlines()从文件中读取每一行,将其存储在一个叫lines的列表中
        for line in lines:#使用for循环打印lines中的各行
            print(line.rstrip())
    3.1515926535
       8979323846
       2643383279
    ======================================
    #使用文件的内容,将内容转为字符串,它包含文件中存储的所有数字,且没有任何空格
    with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
        lines = file_object.readlines()
    
    pi_string = ''#创建pi_string变量,存储圆周率的值
    for line in lines:
        pi_string += line.rstrip()#将各行都加入pi_string,并删除每行末尾的换行符
    print(pi_string)
    print(len(pi_string))
    3.1515926535   8979323846   2643383279
    38
    ==============================================
    #在变量 pi_string存储的字符串中,包含原来位于每行左边的空格,为删除这些空格,可使用strip()而不是rstrip()
    with open(r'C:\Users\YLAB\python练习\pi_digits.txt') as file_object:
        lines = file_object.readlines()
    
    pi_string = ''#创建pi_string变量,存储圆周率的值
    for line in lines:
        pi_string += line.strip()#将各行都加入pi_string,并删除每行末尾的换行符
    print(pi_string)
    print(len(pi_string))
    3.151592653589793238462643383279
    32
    #假设精确到小数点后一百位的圆周率,只要内存够大,想处理多少数据都可以
    #注意,读取文本文件时,python将其中的所有文本都解读为字符串,如果要读取的是数字,并要将其作为数值使用,就必须使用函数int()将其转换为整数,或使用函数float()将其转为浮点数
    

    2.写入文件

    保存数据最简单的方式是将其写入到文件中,通过将输出写入文件,即便关闭包含程序输出的终端端口,这些输出也依然存在.

    1.写入空文件
    ###1.写入空文件,如果要写入的文件不存在,python将自动给创建它
    with open(r'C:\Users\YLAB\python练习\programming.txt', 'w') as file_object:#参数'w'表示以写入模式打开这个文件,此外'r'表示读取模式,'a'表示附加模式,'r+'表示读取和写入模式,python默认为只读模式
        file_object.write('i love programming')#write()函数,将一个字符串写入文件
     #注意,只能将字符串写入文本文件,如果是数值,要使用str()函数先将数值转换为字符串格式  
    
    image.png

    2.写入多行,write()函数不会在写入的文本末尾添加换行符,需要在write()中包含换行符

    with open(r'C:\Users\YLAB\python练习\programming.txt', 'w') as file_object:
        file_object.write('i love programming\n')
        file_object.write('i love eatting\n')
        #还可以使用空格,制表符,空行设置这些格式的输出
    
    image.png

    3.附加到文件,给文件添加而不是覆盖原有内容,可以用附加模式打开文件

    #在programming.txt文件中添加两行
    with open(r'C:\Users\YLAB\python练习\programming.txt','a') as file_object:
        file_object.write('i love sleeping\n')
        file_object.write('i love you\n')
    
    image.png

    相关文章

      网友评论

        本文标题:python(19):文件和异常(1)------读取及写入文件

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