zoukankan      html  css  js  c++  java
  • 读写文件(python)

    写文件

    f = open("information.csv","w",encoding='UTF-8')

    (1)readline函数 读取文件 节省内存,不需要一次性把文件内容放入内存中但是速度相对较慢

    #-*- coding: UTF-8 -*-  
    f = open("information.csv","r",encoding='UTF-8')     # 返回一个文件对象   
    line = f.readline()             # 调用文件的 readline()方法 ,已经读取f中的一行  
    while line:   
        #循环开始的时候从第二行开始
        print(line, end = '')       # 在 Python 3中使用 
        line = f.readline() 
    f.close()

    (2)一次读取多行数据(读取速度快,占用内存大)

    #-*- coding: UTF-8 -*-  
    f = open("information.csv","r",encoding='UTF-8')
    while 1: 
        lines = f.readlines(10000) 
        if not lines: 
            break
        for line in lines: 
            print(line) 
    f.close()

    (3)使用fileinput模块读

    import fileinput 
    for line in fileinput.input("information.csv","r",encoding='UTF-8'): 
        print(line)

    (4)

    with open("information.csv", 'r') as f: 
    #如果是路径/会被转义,加 r,如r'/path/to/file'
        print(f.read())

    (5)
    python文件对象提供了三个“读”方法: read()、readline() 和 readlines()。

    每种方法可以接受一个变量以限制每次读取的数据量。这三种方法是把每行末尾的’ ’也读进来了,它并不会默认的把’ ’去掉,需要我们手动去掉。

    • read() 每次读取整个文件,它通常用于将文件内容放到一个字符串变量中。如果文件大于可用内存,为了保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。

    • readlines() 一次读取整个文件,象 .read() 一样。.readlines() 自动将文件内容分析成一个行的列表,该列表可以由 Python 的 for … in … 结构进行处理。

    • readline() 每次只读取一行,通常比readlines() 慢得多。仅当没有足够内存可以一次读取整个文件时,才应该使用 readline()。

    test1.txt

    1
    22
    333
    4444
    55555

    (1)readlines()读取多行,并放在列表里面

    with open('test1.txt', 'r') as f1:
        list1 = f1.readlines()
    print(list1)
    #输出['1
    ', '22
    ', '333
    ', '4444
    ', '55555']

    (2)read()

    with open('test1.txt', 'r') as f1:
        list1 = f1.read()
    print(list1)
    #输出
    1
    22
    333
    4444
    55555

    (3)readline()读取一行

    with open('test1.txt', 'r') as f1:
        list1 = f1.readline()
    print(list1)
    #输出
    1

    由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:

    try:
        f = open('test1.txt', 'r')
        print(f.read())
    finally:
        if f:
            f.close()
  • 相关阅读:
    ASP.NET应用界面开发新工具推荐,不要错过
    WinForm应用程序的交互界面可以创建哪些样式?
    快速创建一个.NET 5 WPF应用程序,这招一定要Get
    Blazor应用界面开发
    DevExpress v21.1帮助文档下载大全分享
    WinForms应用界面开发入门教程指南
    Kendo UI 透视网格
    WPF应用界面开发新风向
    Angular UI组件库Kendo UI for Angular扩展组件,这些功能值得了解
    响应式Web开发框架DevExtreme v21.1
  • 原文地址:https://www.cnblogs.com/llb123/p/13398704.html
Copyright © 2011-2022 走看看