python中文件操作
文件操作方法
要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。
1.读取这个文件
首先我们创建一个txt文件,里面写上几行数字或者文本信息;
提示:路径的最前面加r来取消字符串里面的反斜杠转义,
由于中文文档是‘gbk’的编码方式,我们需要将‘gbk’转化为utf-8
只要在打开文件的时候encoding一下即可:
>>> with open(r"C:\Users\BBC\Desktop\test.txt",encoding="utf-8") as f: ... cont = f.read() ... print(cont) ... 要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。 1.读取这个文件 首先我们创建一个txt文件,里面写上几行数字或者文本信息---test
with 关键字的好处是适当的时间系统会自动关闭文件,所以你只管打开,非常方便。
2.逐行读取
读取文件时,常常需要检查其中的每一行;你可能要在文件中查找特定的信息,或者要以某种方式修改文件中的文本。
要以每一行的方式检查文件,可对文件对象使用for循环:
>>> file_path = r"C:\Users\BBC\Desktop\test.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) ['要使用文本文件中的信息,首先需要将信息读取到内存中。为此你可以一次性读取文件的全部内容,也可以以每次一行的方式逐行读取。\n', '1.读取这个文件\n', '首先我们创建一个txt文件,里面写上几行数字或者文本信息---test']
方法readlines()是从文件中读取每一行,并将其存储在一个列表中。
写入文件
保存数据的最简单方式之一是将其写入到文件中。通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在:你可以在程序结束运行后查看这些输出,可与别人分享输出文件,还可以编写程序来将这些输出读取到内存中并进行处理。
1.将文本写入文件
在你调用open()时需要提供另外一个实参,告诉python你要写入打开的文件。
>>> file = r"C:\Users\BBC\Desktop\programming.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:\Users\BBC\Desktop\programming.txt" >>> with open(file,"w") as f: ... f.write("yes\n") ... f.write("no\n") ... 4 3 yes no