zoukankan      html  css  js  c++  java
  • python中文件操作

    文件操作方法

    要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。

    1.读取这个文件

    首先我们创建一个txt文件,里面写上几行数字或者文本信息;

    提示:路径的最前面加r来取消字符串里面的反斜杠转义,

    由于中文文档是‘gbk’的编码方式,我们需要将‘gbk’转化为utf-8

    只要在打开文件的时候encoding一下即可:

    >>> with open(r"C:UsersBBCDesktop	est.txt",encoding="utf-8") as f:
    ...     cont = f.read()
    ...     print(cont)
    ...
    要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。
    1.读取这个文件
    首先我们创建一个txt文件,里面写上几行数字或者文本信息---test

    with 关键字的好处是适当的时间系统会自动关闭文件,所以你只管打开,非常方便。

     2.逐行读取

    读取文件时,常常需要检查其中的每一行;你可能要在文件中查找特定的信息,或者要以某种方式修改文件中的文本。

    要以每一行的方式检查文件,可对文件对象使用for循环:

    >>> file_path = r"C:UsersBBCDesktop	est.txt"
    >>> with open(file_path,encoding = "utf-8") as f:
    ...     for line in f:
    ...             print(line)
    ...
    要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。
    
    1.读取这个文件
    
    首先我们创建一个txt文件,里面写上几行数字或者文本信息---test

    我们打印每一行时,发现空白行更多了:

    那为什么会出现这些空白行呢?因为在这个文件中,每行的末尾都有一个看不见的换行符,而print语句也会加上一个换行符,因此每行末尾都有两个换行符:一个来自文件,另一个来自print语句。要消除这些多余的空白行,可在print语句中使用rstrip():

    >>> with open(file_path,encoding = "utf-8") as f:
    ...     for line in f:
    ...             print(line.rstrip())
    ...
    要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。
    1.读取这个文件
    首先我们创建一个txt文件,里面写上几行数字或者文本信息---test

     3.with代码块外访问文件的方法

    使用关键字with时,open()返回的文件对象只在with代码块内可用。如果要在with代码块外访问文件的内容,可在with代码块内将文件的各行存储在一个列表中,并在with代码块外使用该列表:你可以立即处理文件的各个部分,并可推迟到程序后面再处理。

    >>> with open(file_path,encoding = "utf-8") as f:
    ...     lines = f.readlines()
    ...
    >>> for line in lines:
    ...     print(line)
    ...
    要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。
    
    1.读取这个文件
    
    首先我们创建一个txt文件,里面写上几行数字或者文本信息---test
    >>> with open(file_path,encoding = "utf-8") as f:
    ...     con = f.read()
    ...
    >>> print(con)
    要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。
    1.读取这个文件
    首先我们创建一个txt文件,里面写上几行数字或者文本信息---test
    >>> print(lines)
    ['要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。
    ', '1.读取这个文件
    ', '首先我们创建一个txt文件,里面写上几行数字或者文本信息---test']

    方法readlines()是从文件中读取每一行,并将其存储在一个列表中。

    写入文件

    保存数据的最简单方式之一是将其写入到文件中。通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在:你可以在程序结束运行后查看这些输出,可与别人分享输出文件,还可以编写程序来将这些输出读取到内存中并进行处理。

    1.将文本写入文件

    在你调用open()时需要提供另外一个实参,告诉python你要写入打开的文件。

    >>> file = r"C:UsersBBCDesktopprogramming.txt"
    >>> with open(file,'w') as f:
    ...     f.write("I love mywife!")
    14

    这段程序会在我电脑桌面上生成一个txt格式的文件,里面的文字内容是I love mywife!

    在这个示例中,调用open()时提供了两个实参。第一个实参生成文件并也是我们要打开的文件的名称;第二个实参(‘w')告诉python,我们要以写入模式打开这个文件。打开文件时,可指定读取模式('r'),写入模式('w'),附加模式('a')或让你能够读取和写入文件的模式('r+').省略时为只读取。附加模式是在原文件的内容后面追加内容。

    2.写入多行

    函数wirte()不会在你写入的文本末尾添加换行符,因此如果你写入多行时没有指定换行符,文件看起来可能不是你希望的那样,要让每个字符串都单独占一行,需要在write()语句中包含换行符:

     

    >>> file = r"C:UsersBBCDesktopprogramming.txt"
    >>> with open(file,"w") as f:
    ...     f.write("yes
    ")
    ...     f.write("no
    ")
    ...
    4
    3
    yes
    no
  • 相关阅读:
    BZOJ 1565: [NOI2009]植物大战僵尸
    BZOJ 1617: [Usaco2008 Mar]River Crossing渡河问题
    BZOJ 2820: YY的GCD
    数论模版-欧拉函数、莫比乌斯函数和素数
    BZOJ 2818: Gcd
    BZOJ 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
    BZOJ 1614: [Usaco2007 Jan]Telephone Lines架设电话线
    BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
    BZOJ 1612: [Usaco2008 Jan]Cow Contest奶牛的比赛
    Unity5.3.4版本打包APk,安卓识别不了 Application.systemLanguage
  • 原文地址:https://www.cnblogs.com/iBoundary/p/11470420.html
Copyright © 2011-2022 走看看