大数据应用人才培养系列教材Python语言刘鹏张燕总主编李肖俊主编刘河钟涛副主编第十章文件操作10.1打开文件10.2基本的文件方法10.3StringI/O函数10.5实验大数据应用人才培养系列教材10.6小结10.7习题10.4基本的目录方法Python使用内置函数open()打开文件,创建file对象。在系统中,只有存在file对象后,用户才能对文件进行相应的操作。语法格式如下:fileobject=open(file_name[,access_mode][,buffering])各个参数的含义如下:file_name:访问文件的字符串值,必选参数项。access_mode:访问文件的模式,可选参数项。默认访问是只读(“r”)。buffering:设置文件缓冲区,可选参数项。默认缓冲区大小是4096字节。10.1打开文件第十章文件操作10.1.1文件模式访问文件的模式有:读、写、追加等。以不同模式打开文件,详细功能如(教材表10.1所述)例:以写模式打开并创建一个文件,如下所示:str_file=open(G:\\file_test.txt,w)10.1打开文件第十章文件操作10.1.2文件缓冲区Python文件缓冲区,一般分为三种模式:全缓冲、无缓冲、行缓冲。全缓冲:默认情况下,Python文件写入采用全缓冲模式,空间大小为4096字节。前4096个字节的信息都会写在缓冲区中,当第4097个字节写入的时候,系统会把先前的4096个字节通过系统调用写入文件。同样,可以用Buffering=n(单位为:字节)自定义缓冲区的大小。行缓冲:Buffering=1,系统每遇到一个换行符(’\n’)才进行系统调用,将缓冲区的信息写入文件。无缓冲:Buffering=0,当需要将系统产生的信息实时写入文件时,就须要设置为无缓冲的模式。10.1打开文件第十章文件操作第十章文件操作10.2基本的文件方法10.1打开文件10.3StringI/O函数10.5实验大数据应用人才培养系列教材10.6小结10.7习题10.4基本的目录方法10.2.1读和写1.read()方法语法格式如下:String=fileobject.read([size]);size——从文件中读取的字节数,如果未指定则读取文件的全部信息。返回值为从文件中读取的字符串。10.2基本的文件方法第十章文件操作10.2.1读和写2.write()方法语法格式如下:fileobject.write(string);write()方法将字符串写入一个打开的文件。write()方法不会自动在字符串的末尾添加换行符('\n'),需要人为在字符串末尾添加换行符。10.2基本的文件方法第十章文件操作10.2.2读取行1.readline()方法:用于从文件中读取整行,包括”\n”字符。语法格式如下:String=fileObject.readline([size]);size--从文件中读取的字节数,如果参数为正整数,则返回指定大小的字符串数据。10.2基本的文件方法第十章文件操作10.2.2读取行2.readlines()方法:用于读取文件中所有行,直到结束符EOF,并返回列表,包括所有行的信息。该列表可以由Python的“for...in...”结构进行处理。readlines()方法语法如下:fileObject.readlines();10.2基本的文件方法第十章文件操作10.2.3关闭文件close()方法:用于关闭该文件,并清除文件缓冲区里的信息,关闭文件后不能再进行写入。语法格式如下:fileObject.close();当一个文件对象的引用被重新指定给另一个文件时,系统会关闭先前打开的文件。10.2基本的文件方法第十章文件操作10.2.4文件重命名rename()方法:用于将当前文件名称重新命名为一个新文件名称。语法格式如下:os.rename(current_filename,new_filename)current_filename:当前文件的名称;new_filename:重新命名后的文件名称。注意:要使用这个内置函数rename(),你必须先导入os模块,然后才可以调用相关的功能。10.2基本的文件方法第十章文件操作10.2.5删除文件remove()方法:用于删除系统中已经存在的文件。语法格式如下:os.remove(file_name)file_name——系统中已经存在的文件名称,即将删除的文件名称。注意:要使用这个内置函数remove(),你必须先导入os模块,然后才可以调用相关的功能。10.2基本的文件方法第十章文件操作第十章文件操作10.3StringI/O函数10.1打开文件10.2基本的文件方法10.5实验大数据应用人才培养系列教材10.6小结10.7习题10.4基本的目录方法10.3.1输出到屏幕语法格式如下:print([string][,string])string——为可选参数,零个或多个用逗号隔开的表达式。其中,如果是数学表达式,则直接计算出结果。print()方法的应用如下所示:print(Python是一门简单易学的语言!\n,12.5+987)Python是一门简单易学的语言!999.510.3StringI/O函数第十章文件操作10.3.2读取键盘输入语法格式如下:input([keystring])keystring——可以接收从键盘输入的字符串,也可以是一个表达式作为输入,返回的是运算结果。返回的结果作为对象供系统引用。input()方法应用如下所示:str=input(请从键盘输入:)请从键盘输入:Python编程实践10.3StringI/O函数第十章文件操作第十章文件操作10.4基本的目录方法10.1打开文件10.2基本的文件方法10.5实验大数据应用人才培养系列教材10.6小结10.7习题10.3StringI/O函数10.4.1创建目录mkdir()方法:语法格式如下:os.mkdir(newdir)newdir——新建的目录名称,必须要带目录的完整路径。注意:要使用目录操作相关的内置函数,必须先导入os模块,然后才可以调用相关的功能。os.mkdir()方法应用如下所示:importosos.mkdir(G:\\test_dir)10.4基本的目录方法第十章文件操作10.4.2显示当前工作目录getcwd()方法:语法格式如下:os.getcwd()显示当前的工作目录。os.getcwd()方法应用如下所示:importosos.getcwd()'C:\\Users\\Lenovo\\AppData\\Local\\Programs\\Python\\Python36-32'10.4基本的目录方法第十章文件操作10.4.3改变目录chdir()方法:语法格式如下:os.chdir(newdir)newdir——要改变的新的工作目录名称,需要带目录的完整路径。os.chdir()方法应用如下所示:importosos.getcwd()'C:\\Users\\Lenovo\\AppData\\Local\\Programs\\Python\\Python36-32'10.4基本的目录方法第十章文件操作10.4.3改变目录os.chdir(G:\\)os.getcwd()'G:\\'上例中,先将os模块导入系统中,调用getcwd()方法显示当前的工作目录,然后改变当前的工作目录为:G盘根目录,最后用getcwd()方法验证操作结果。10.4基本的目录方法第十章文件操作10.4.4删除目录rmdir()方法:语法格式如下:os.rmdir(dirname)dirname——要删除的目录名称,需要带目录的完整路径。os.rmdir()方法应用如下所示:importosos.rmdir(G:\\new_dir)上例中,先将os模块导入系统中,调用rmdir()方法删除目录:G:\new_dir。10.4基本的目录方法第十章文件操作第十章文件操作10.5实验10.1打开文件10.2基本的文件方法10.4基本的目录方法大数据应用人才培养系列教材10.6小结10.7习题10.3StringI/O函数10.5.1文件操作10.5实验第十章文件操作10.5.2目录操作10.5.3I/O函数的使用第十章文件操作10.6小结10.1打开文件10.2基本的文件方法10.4基本的目录方法大数据应用人才培养系列教材10.5实验10.7习题10.3StringI/O函数我们在这章里面系统学习了文件的读写操作、文件的各种系统操作以及存储对象等。当我们在保存文件的时候,如果遇到是列表、字典、集合,甚至是类的实例这些更加复杂的数据类型的时候,我们就变得不知所措了,也许我们会把这些数据类型转换成字符串再保存到一个文本文件里,但是我们发现把这个过程反过来,从文本文件恢复数据对象,把一个字符串恢复成列表,恢复成字典,甚至恢复成集合,类,类的实例,我们发现会是一件异常困难的事情,庆幸的是Python提供了一个功能强大的标准模块“pickle”,使我们将非常复杂的数据类型(比如列表,字典等)转换为二进制文件。10.6小结第十章文件操作第十章文件操作10.7习题10.1打开文件10.2基本的文件方法10.4基本的目录方法大数据应用人才培养系列教材10.5实验10.6小结10.3StringI/O函数1.二进制文件与文本文件有什么区别?习题:AIRack人工智能实验平台——一站式的人工智能实验平台DeepRack深度学习一体机——开箱即用的AI科研平台BDRack大数据实验平台——一站式的大数据实训平台云计算头条微信号:chinacloudnj中国大数据微信号:cstorbigdata刘鹏看未来微信号:lpoutlook云创大数据订阅号微信号:cStor_cn云创公众号推荐深度学习世界微信号:dl-world云创大数据服务号微信号:cstorfw高校大数据与人工智能微信号:data_AI手机APP推荐我的PM2.5随时随地准确查看身边的PM2.5值同声译支持26种语言互译的实时翻译软件科技头条汇聚前沿资讯的科技情报站我的南京云创大数据为路况大数据应用提供技术支持万物云智能硬件大数据免费托管平台环境云环境大数据开放共享平台网站推荐感谢聆听