zoukankan      html  css  js  c++  java
  • Python 学习笔记17 文本

    在我们的编程过程中,我们经常需要对文件进行读写操作。

    在Python中,对文本的读写非常的方便,只需要简单的几行代码就可以实现。

    我们首先新建一个文本文件"Text.txt", 里面有很多的内容,我们尝试将其全部读出来

    with open('Text.txt') as file_object:
        contents = file_object.read()
        print(contents)
        
        
        
    '''
    输出:
    查询出系统中最慢的SQL语句
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    SELECT TOP 20
    CAST(qs.total_elapsed_time / 1000000.0 AS DECIMAL(28, 2))
    AS [Total Elapsed Duration(s)]
    , qs.execution_count
    , SUBSTRING (qt.text, (qs.statement_start_offset/2) + 1,
    .....
    .....
    
    '''

    我们看到,使用open的方式,我们可以打开一个文本对象,并通过read函数,将文本中的内容全部读出来了。和其他的语言不同的是,代码中我们没有使用close将文本关闭。

    Python会自动进行管理,在文本不再使用的时候或者合适的时候将其关闭,当然你也可以人工将其关闭,以节约资源。

    with open('Text.txt') as file_object:
        contents = file_object.read()
        print(contents)
        file_object.close()

    逐行读取文本:

    with open('Text.txt') as file_object:
        for line in file_object:
            print(line)
        file_object.close()
    '''
    输出:
    查询出系统中最慢的SQL语句
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    SELECT TOP 20
    CAST(qs.total_elapsed_time / 1000000.0 AS DECIMAL(28, 2))
    AS [Total Elapsed Duration(s)]
    , qs.execution_count
    , SUBSTRING (qt.text, (qs.statement_start_offset/2) + 1,
    .....
    .....
    
    '''

    使用列表存储文本中的内容,我们可以使用readlines将文本按行读出,并赋值给一个列表,为其他代码使用:

    with open('Text.txt') as file_object:
        lineslist = file_object.readlines()
        file_object.close()
    
    print(len(lineslist))
    print(lineslist[1])
    '''
    输出:
    187
    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
    
    '''

    通过以上的方式我们可以简单的对文件进行读操作。

    接下来我们可以尝试写一个文本: 

    with open('write.txt', 'w') as file_object:
        file_object.write('hello world!')
        file_object.close()
    
    
    '''
    输出:
    hello world!
    
    '''

    上述代码中,我们尝试对一个python相同目录下的名叫 ‘write.txt’的文本中写入一段文字 ‘hello world!’。如果该文件不存在,python会默认新建一个。

    我们也可以向文件中写入多行的文件,注意使用换行符:

    with open('write.txt', 'w') as file_object:
        file_object.write('hello world!
    ')
        file_object.write('hello ralf!
    ')
        file_object.write('hello rachel!
    ')
        file_object.write('hello wowo!
    ')
        file_object.close()
    
    
    '''
    输出:
    hello world!
    hello ralf!
    hello rachel!
    hello wowo!
    
    '''

    需要注意的是使用 'w'模式,会对文本进行覆盖写入,所以我们可以使用 ‘a’附加模式,对文件的内容进行附加:

    with open('write.txt', 'w') as file_object:
        file_object.write('hello world!
    ')
        file_object.write('hello ralf!
    ')
        file_object.write('hello rachel!
    ')
        file_object.write('hello wowo!
    ')
        file_object.close()
    
    with open('write.txt', 'a') as file_object:
        file_object.write('hello Python!
    ')
        file_object.close()
    '''
    输出:
    hello world!
    hello ralf!
    hello rachel!
    hello wowo!
    hello Python!
    '''

    通过上述的代码我们可以看出,实际上我们对文本的操作就是通过 open创建一个文本对象,根据不同的模式选择读,写,附加等相关的操作:

    file object = open(file_name [, access_mode][, buffering])

    file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
    access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
    buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

    其他的相关的参数和流程如下:

    以下内容来自于:
    作者:呆呆的猫
    来源:CSDN
    原文:https://blog.csdn.net/jiaoyangwm/article/details/79635271
    版权声明:本文为博主原创文章,转载请附上博文链接!

    • 模式     描述
    • r     以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    • rb      以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
    • r+      打开一个文件用于读写。文件指针将会放在文件的开头。
    • rb+    以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
    • w       打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    • wb     以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    • w+    打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    • wb+     以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    • a       打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    • ab     以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    • a+     打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    • ab+   以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

  • 相关阅读:
    洛谷1098 字符串的展开 解题报告
    洛谷1086 花生采摘 解题报告
    洛谷1125 笨小猴 解题报告
    洛谷1056 排座椅 解题报告
    洛谷1067 多项式输出 解题报告
    洛谷1003 铺地毯 解题报告
    JS在不同js文件中互相调用
    JS鼠标滚轮事件
    JS闭包
    PHP中header('content-type:text/html;charset="utf-8')和error_reporting()的作用
  • 原文地址:https://www.cnblogs.com/wanghao4023030/p/11221385.html
Copyright © 2011-2022 走看看