当前位置: 首页 > news >正文

做网站用哪里的服务器比较好深圳品牌设计公司深圳vi设计

做网站用哪里的服务器比较好,深圳品牌设计公司深圳vi设计,一个企业的网站建设,汽车网站排行榜前十名Python 程序设计入门#xff08;024#xff09;—— Python 的文件操作 目录 Python 程序设计入门#xff08;024#xff09;—— Python 的文件操作一、文件对象二、读取文件内容的方法1、read() 方法2、readline() 方法3、readlines() 方法4、使用 for 循环读取文件内容 …Python 程序设计入门024—— Python 的文件操作 目录 Python 程序设计入门024—— Python 的文件操作一、文件对象二、读取文件内容的方法1、read() 方法2、readline() 方法3、readlines() 方法4、使用 for 循环读取文件内容 三、文件指针的操作1、tell() 方法2、seek() 方法 四、文件的写入操作五、使用 with 语句处理文件六、打开文件之前先判断文件是否存在七、文件的编码问题1、打开文件时指定文件的编码格式2、以二进制方式打开文件然后对读取的内容进行编码3、强制以某种模式读取文件忽略编码错误 为了能够长期保存程序中的数据需要将其保存到磁盘文件中。Python 提供了内置的文件对象和对文件、目录进行操作的内置模块。 一、文件对象 Python 中内置了文件file对象使用文件对象时需要先通过内置的 open() 函数创建一个文件对象然后通过该对象提供的方法进行操作。 使用 open() 函数一定要保证关闭文件对象即调用 close() 函数。open() 函数的语法格式如下 file open(filename, mode r, buffering -1, encoding None)说明 1filename要创建或打开的文件名必须使用单引号或双引号括起来。如果要打开的文件和当前文件在同一目录下可以不带路径否则需要指定完整路径。 2mode指定文件的打开模式可选默认的打开模式为只读rmode 的取值如下表所示 取值含义说明t文本模式默认r以只读模式打开文件。文件的指针将会放在文件的开头。文件必须存在rb以二进制格式打开文件并且采用只读模式。文件的指针将会放在文件的开头。文件必须存在r打开文件后可以读取文件内容也可以写入新的内容覆盖原有内容不清空原文件从第一个字符开始逐步替换。比如文件中原有内容为123456789写入abc则文件内容为abc456789文件必须存在rb以二进制格式打开文件并且采用读写模式文件的指针将会放在文件的开头。文件必须存在w以只写模式打开文件如果文件已存在则将其覆盖否则创建新文件wb以二进制格式打开文件并且采用只写模式。一般用于非文本文件如图片、声音等。如果文件已存在则将其覆盖否则创建新文件w打开文件后先清空原有内容使其变为一个空文件对这个空文件有读写权限。如果文件已存在则将其覆盖否则创建新文件wb以二进制格式打开文件并且采用读写模式。一般用于非文本文件如图片、声音等。如果文件已存在则将其覆盖否则创建新文件a以追加模式打开文件。如果该文件已存在文件指针放在文件的末尾新内容会被写到已有内容之后。否则创建新文件用于写入。如果文件已存在则将新内容追加到原文件结尾否则创建新文件并写入新内容ab以二进制格式打开文件并且采用追加模式。如果该文件已存在文件指针将放在文件末尾新内容会被写到已有内容之后。否则创建新文件用于写入。如果文件已存在则将新内容追加到原文件结尾否则创建新文件并写入新内容a以读写模式打开文件。如果该文件已存在文件指针将放到文件的末尾新内容会被写到已有内容之后。否则创建新文件用于读写。如果文件已存在则将新内容追加到原文件结尾否则创建新文件并写入新内容ab以二进制格式打开文件并且采用追加模式。如果该文件已存在文件指针将放到文件末尾新内容会被写到已有内容之后。否则创建新文件用于读写。如果文件已存在则将新内容追加到原文件结尾否则创建新文件并写入新内容 mode 参数的用法如下 常用的 mode 取值组合如下 1r 或 rt默认模式文本模式、只读模式 2rb二进制模式 3w 或 wt文本模式、只写模式打开之前文件被清空 4wb二进制模式、写模式打开之前文件被清空 5a追加模式只能写在文件末尾 6a可读写模式写操作只能写在文件末尾 7w可读写模式与 a 的区别就是写之前先清空文件内容 8r可读写模式写之前先清空文件内容说明 1r只读模式、w只写模式、a追加模式为打开文件的基本模式。 2b二进制模式、t文本模式、读写模式 与以上三个模式可以混合使用。 3r、rb、rrb 模式要求文件必须存在。r 与 rb 表示只读模式。r 与 rb 表示可读写写入的新内容会替换文件中的原有内容。 4w、wb、w、wb 模式下如果文件已创建则覆盖原文件如果文件不存在则创建新文件。w 与 wb 表示只能写入不能读取。w 与 wb 表示可读写但写入的内容会替换文件中的原有内容。 5a、ab、a、ab 模式下如果文件已创建则将新内容追加到原文件的结尾如果文件不存在则创建新文件并写入新内容。a 和 ab 表示以追加模式打开文件无法读取文件内容。a 和 ab 表示以读写方式打开文件。3buffering用于指定读写文件的缓冲模式可选取值为 0 时表示不缓存取值为 1 时表示缓存如果取值大于 1则表示缓冲区的大小。如果取负值缓冲区的大小则为系统默认。默认值为 -1。 4encoding编码方式。Windows 系统默认是 gbk 编码所以桌面生成的 TXT 之类的文件都是gbk 编码的。 例如 file1 open(d:\stu.txt,mode r,encodingutf-8) print(file1.read()) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,13603733415二、读取文件内容的方法 读取文件内容通常使用 file 对象的 3 个方法1使用 read() 方法读取全部或部分内容2使用 readline() 方法逐行读取文件内容3使用 readlines() 方法读取所有内容。 也可以使用 for 循环读取文件内容。 1、read() 方法 read() 方法用于读取文件的全部或部分内容。read() 方法的语法格式如下 file.read([size]) 说明 1size 为可选参数用于指定要读取文件内容的字符数所有字符 size 均为 1包括汉字。如果省略则返回文件的所有内容。 2使用 read() 方法读取文件内容时如果文件大于可用内存则不能实现对文件的读取返回空字符串。 例如 1读取文件的全部内容 file1 open(d:\stu.txt,mode r,encodingutf-8) print(file1.read()) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,136037334152读取 25 个字符 file1 open(d:\stu.txt,mode r,encodingutf-8) print(file1.read(25)) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女2、readline() 方法 readline() 方法用于每次读取一行数据。readline() 方法的语法格式如下 file.readline() 例如 1读取一行数据 file1 open(d:\stu.txt,mode r,encodingutf-8) print(file1.readline()) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号2读取 5 行数据 file1 open(d:\stu.txt,mode r,encodingutf-8) for i in range(5):print(file1.readline(),end) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,136037366543读取全部数据 file1 open(d:\stu.txt,mode r,encodingutf-8) while True:line file1.readline()if line :breakprint(line,end) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,136037334153、readlines() 方法 readlines() 方法返回一个列表列表中每个元素为文件中的行数据。readlines() 方法的语法格式如下 file.readlines()例如 file1 open(d:\stu.txt,mode r,encodingutf-8) list1 file1.readlines() print(类型,type(list1)) print(列表长度,len(list1)) print(列表内容如下) print(list1) print(遍历列表内容) for item in list1:print(item,end) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 类型 class list 列表长度 13 列表内容如下 [姓名,性别,出生日期,院系,班级,手机号\n, 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216\n, 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334\n, 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243\n, 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654\n, 张海洋,男,2002-7-9,机电学院,机制211班,13603737778\n, 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538\n, 王彦强,男,2002-7-31,机电学院,机制212班,13603736528\n, 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235\n, 王鹏,男,2002-9-27,机电学院,机制201班,13603734215\n, 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685\n, 王芸,女,2002-6-30,文法学院,法学201班,13603733322\n, 刘云飞,男,2002-9-21,文法学院,法学201班,13603733415] 遍历列表内容 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,136037334154、使用 for 循环读取文件内容 使用 for 循环读取文件内容格式如下 file1 open(filename, mode) for line in file:print(line)或 file1 open(filename, mode) for line in file.readlines():print(line)例如 import os if os.path.exists(d:\\stu.txt):with open(d:\\stu.txt, mode r, encoding utf-8) as file1:for line in file1:print(line,end) else:print(要打开的文件不存在)程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,13603733415或者 import os if os.path.exists(d:\\stu.txt):with open(d:\\stu.txt, mode r, encoding utf-8) as file1:for line in file1.readlines():print(line,end) else:print(要打开的文件不存在)程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,13603733415三、文件指针的操作 除了文件读取操作有时还需要进行获取或移动指针位置的操作。 1、tell() 方法 tell() 方法返回一个整数表示文件指针的当前位置即在二进制模式下距离文件头的字节数。tell() 方法的语法格式如下 file.tell() 说明使用 tell() 方法返回的位置与 read() 中 size 参数不同。read() 方法中的 size 参数为字符数tell() 方法返回的是字节数。汉字所占的字节数和字符编码有关如果采用 GBK 编码一个汉字占 2 个字节如果采用 UTF-8 编码一个汉字占 3 个字节。修改放表称为单链表。 file1 open(d:\stu.txt,mode r,encodingutf-8) file1.readlines() print(readlines()方法把指针移动到文件结尾,file1.tell()) file1.seek(0) # 把指针移动到文件头 file1.readline() print(readline()方法把指针移动到下一行的开头,file1.tell()) file1.seek(0) # 把指针移动到文件头 file1.read(25) print(read(25)方法把指针移动到第25个字符,file1.tell()) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py readlines()方法把指针移动到文件结尾 825 readline()方法把指针移动到下一行的开头 52 read(25)方法把指针移动到第25个字符 622、seek() 方法 seek() 方法用于将文件的指针移动到新的位置位置通过字节数指定。这里的数值与 tell() 方法返回的数值计算方法一致。seek() 方法的语法格式如下 file.seek(offset [,whence]) 说明 1offset用于指定移动的字节数。具体位置与 whence 参数有关。 2whence指定从什么位置开始计算。值为 0 表示从文件头开始计算默认为 1 表示从当前位置开始计算为 2 表示从文件尾开始计算。默认值为 0。例如 file1 open(d:\stu.txt,mode rb) file1.seek(0) # 把指针移动到文件头 print(file1.tell())file1.seek(10) # 把指针移动到离文件头10个字节的位置 print(file1.tell())file1.seek(20,1) # 再向后移动20个自节 print(file1.tell())file1.seek(0,2) # 把指针移动到文件尾 print(file1.tell())file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 0 10 30 825四、文件的写入操作 利用文件对象的 write() 方法可以向文件中写入内容。write() 方法的语法格式如下 file.write(string)对于一个文件来说能不能写入数据、数据的写入方式与打开文件的模式有关。 1如果一个文件以只读方式r打开则无法写入 代码如下 file1 open(d:\stu.txt,mode r) file1.write(新增一条记录) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py Traceback (most recent call last):File C:\Python\Python38\First.py, line 2, in modulefile1.write(新增一条记录) io.UnsupportedOperation: not writable2如果一个文件以只写方式打开则无法读取内容 代码如下 file1 open(d:\stu.txt,mode w) file1.readlines() file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py Traceback (most recent call last):File C:\Python\Python38\First.py, line 2, in modulefile1.readlines() io.UnsupportedOperation: not readable3文件以只写方式打开写入内容 代码如下 file1 open(d:\\test123.txt, mode w) file1.write(Hello Python!) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py 4文件以可读写r方式打开写入内容 代码如下 file1 open(d:\\test123.txt, mode r) print(file1.read()) print(file1.tell()) file1.close()file1 open(d:\\test123.txt, mode r) file1.write(New!) print(file1.tell()) file1.close()file1 open(d:\\test123.txt, mode r) print(file1.read()) print(file1.tell()) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py Hello Python! 13 4 New!o Python! # r 模式在写入时并不清空文件而是从第一个字符开始替换原有的内容 135文件以可读写w方式打开写入内容 代码如下 file1 open(d:\\test123.txt, mode r) print(file1.read()) print(file1.tell()) file1.close()file1 open(d:\\test123.txt, mode w) file1.write(New!) print(file1.tell()) file1.close()file1 open(d:\\test123.txt, mode r) print(file1.read()) print(file1.tell()) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py Hello Python! 13 4 New! # w 模式在写入时先清空原有文件再写入新内容 46文件以追加方式打开写入内容 代码如下 file1 open(d:\\test123.txt, mode r) print(file1.read()) print(file1.tell()) file1.close()file1 open(d:\\test123.txt, mode a) file1.write(New!) print(file1.tell()) file1.close()file1 open(d:\\test123.txt, mode r) print(file1.read()) print(file1.tell()) file1.close()程序运行结果如下RESTART: C:\Python\Python38\First.py Hello Python! 13 17 Hello Python!New! 17五、使用 with 语句处理文件 文件使用完要及时关闭。如果忘记关闭文件可能出现一些意想不到的结果。另外如果在打开文件时出现了异常将导致文件不能被及时关闭。为了避免这些问题的产生可以使用 with 语句实现在处理文件时无论是否抛出异常都能保证 with 语句执行完后关闭已经打开的文件。 with 语句的语法格式如下 with expression as target:with-body说明 1expression指定一个表达式可以是打开文件的 open() 函数。 2with-body指定 with 语句体其中可以是执行 with 语句后相关的一些操作。如果不想执行任何操作可以用 pass 语句代替。 例如 with open(d:\\stu.txt, mode r ,encoding utf-8) as file1:while True:line file1.readline()if line :breakprint(line,end)程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,13603733415六、打开文件之前先判断文件是否存在 使用 open() 函数打开文件时如果要打开的文件不存在则会出现异常。可以使用 os.path 模块提供的 exists() 函数判断文件是否存在。 例如 1以只读r方式打开一个不存在的文件时出现异常 代码如下 with open(d:\\stu001.txt, mode r ,encoding utf-8) as file1:while True:line file1.readline()if line :breakprint(line,end)程序运行结果如下RESTART: C:\Python\Python38\First.py Traceback (most recent call last):File C:\Python\Python38\First.py, line 1, in modulewith open(d:\\stu001.txt, mode r ,encoding utf-8) as file1: FileNotFoundError: [Errno 2] No such file or directory: d:\\stu001.txt2打开之前先判断文件是否存在 代码如下 import os if os.path.exists(d:\\stu001.txt):with open(d:\\stu001.txt, mode r ,encoding utf-8) as file1:while True:line file1.readline()if line :breakprint(line,end) else:print(要打开的文件不存在)程序运行结果如下RESTART: C:\Python\Python38\First.py 要打开的文件不存在七、文件的编码问题 由于文件保存格式不同在读取文件时如果格式不正确将会出现乱码或抛出异常。 例如 import os if os.path.exists(d:\\stu.txt):with open(d:\\stu.txt, mode r) as file1:while True:line file1.readline()if line :breakprint(line,end) else:print(要打开的文件不存在)程序运行结果如下RESTART: C:\Python\Python38\First.py Traceback (most recent call last):File C:\Python\Python38\First.py, line 5, in moduleline file1.readline() UnicodeDecodeError: gbk codec cant decode byte 0xad in position 36: illegal multibyte sequence可以使用如下三种方法解决文件的编码格式问题 1、打开文件时指定文件的编码格式 例如在打开文件时指定编码格式为 【utf-8】代码如下 import os if os.path.exists(d:\\stu.txt):with open(d:\\stu.txt, mode r, encoding utf-8) as file1:while True:line file1.readline()if line :breakprint(line,end) else:print(要打开的文件不存在)程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,136037334152、以二进制方式打开文件然后对读取的内容进行编码 读取文件时如果出现字符编码错误用二进制方式打开文件就不会出现错误了但需要在读取文件时进行编码。先使用 isinstance() 函数判断读取的内容是否为 str 类型如果是则直接读取文件内容。如果不是则使用异常处理程序尝试使用 utf-8 方式解码否则使用 GBK 解码。 代码如下 import os if os.path.exists(d:\\stu.txt):with open(d:\\stu.txt, mode rb) as file1:for line in file1.readlines():if isinstance(line,str):print(new,end)else:try:new line.decode(utf-8)print(new,end)except:try:new line.decode(GBK)print(new,end)except:pass else:print(要打开的文件不存在)程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,136037334153、强制以某种模式读取文件忽略编码错误 例如以二进制方式读取文件的内容然后用 GBK 编码强制读取该文件。 代码如下 import os if os.path.exists(d:\\stu.txt):with open(d:\\stu.txt, mode rb) as file1:text file1.read()new text.decode(GBK,errors ignore)print(new) else:print(要打开的文件不存在)程序运行结果如下RESTART: C:\Python\Python38\First.py 濮撳悕,鎬у埆,鍑虹敓鏃ユ湡,闄㈢郴,鐝绾,鎵嬫満鍙 寮犲钩,濂,2002-12-5,缁忔祹涓庣悊瀛﹂櫌,淇201鐝,13603735216 鍒樻稕,鐢,2002-10-15,缁忔祹涓庣悊瀛﹂櫌,淇201鐝,13603733334 寮犻潤闈,濂,2003-8-6,缁忔祹涓庣悊瀛﹂櫌,淇212鐝,13603734243 鐜嬪己,鐢,2003-6-25,缁忔祹涓庣悊瀛﹂櫌,淇212鐝,13603736654 寮犳捣娲,鐢,2002-7-9,鏈虹數瀛﹂櫌,鏈哄埗211鐝,13603737778 鍒樻濋洦,濂,2001-8-30,鏈虹數瀛﹂櫌,鏈哄埗211鐝,13603736538 鐜嬪溅寮,鐢,2002-7-31,鏈虹數瀛﹂櫌,鏈哄埗212鐝,13603736528 鍒樻湞杈,鐢,2001-7-6,鏈虹數瀛﹂櫌,鏈哄埗201鐝,13603736235 鐜嬮箯,鐢,2002-9-27,鏈虹數瀛﹂櫌,鏈哄埗201鐝,13603734215 鍒樼嚂鐕,濂,2001-8-22,鏂囨硶瀛﹂櫌,娉曞201鐝,13603733685 鐜嬭姼,濂,2002-6-30,鏂囨硶瀛﹂櫌,娉曞201鐝,13603733322 鍒樹簯椋,鐢,2002-9-21,鏂囨硶瀛﹂櫌,娉曞201鐝,13603733415以二进制方式读取文件的内容然后用 utf-8 编码强制读取该文件。 import os if os.path.exists(d:\\stu.txt):with open(d:\\stu.txt, mode rb) as file1:text file1.read()new text.decode(utf-8,errors ignore)print(new) else:print(要打开的文件不存在)程序运行结果如下RESTART: C:\Python\Python38\First.py 姓名,性别,出生日期,院系,班级,手机号 张平,女,2002-12-5,经济与管理学院,信管201班,13603735216 刘涛,男,2002-10-15,经济与管理学院,信管201班,13603733334 张静静,女,2003-8-6,经济与管理学院,信管212班,13603734243 王强,男,2003-6-25,经济与管理学院,信管212班,13603736654 张海洋,男,2002-7-9,机电学院,机制211班,13603737778 刘思雨,女,2001-8-30,机电学院,机制211班,13603736538 王彦强,男,2002-7-31,机电学院,机制212班,13603736528 刘朝辉,男,2001-7-6,机电学院,机制201班,13603736235 王鹏,男,2002-9-27,机电学院,机制201班,13603734215 刘燕燕,女,2001-8-22,文法学院,法学201班,13603733685 王芸,女,2002-6-30,文法学院,法学201班,13603733322 刘云飞,男,2002-9-21,文法学院,法学201班,13603733415
http://www.pierceye.com/news/700944/

相关文章:

  • 网站建设英文文献佛山外贸网站推广
  • wordpress 网站显示ip哪里可以建网站
  • 网站是干嘛用的凡科教育
  • 黄页营销网站南京哪些公司做网站
  • 俄语网站推广工程公司名称大全
  • 怎么知道网站是php什么是网站推广?
  • 温州在线课堂番禺网站建设优化
  • php怎么做网站快大都会app下载最新版本
  • 麻城网站建设公司网络推广公司挣钱吗
  • t型布局网站的样子自己做的网站如何上传
  • 排版设计模板网站百度搜索下载安装
  • 网站页面建设需要ps吗网站建设结单 优帮云
  • 网站建设对我有什么好处网站首页被k 做跳转
  • 美辰网站建设网站建设公司转型做什
  • 创意网站界面怎么查注册公司的名字可不可以用
  • 微友说是做网站维护让帮忙投注中小企业经营管理培训班
  • 网站开发宣传标语虚拟币挖矿网站开发
  • wordpress是否免费网站移动端seo
  • 加盟网站建设服务极简风格 wordpress
  • phpcms v9 网站模板seo优化的技巧
  • 域名备案网站要不要关7k7k网页游戏
  • 虚拟主机发布网站吗汕头建站平台
  • wap站是什么意思啊阿里云建设网站的步骤
  • 网站备案 异地可以做视频的网站
  • 淘宝网站c 设计怎么做安卓手机做网站
  • 嘉兴做网站建设的公司电商网名大全
  • 欢迎访问中国建设银行网站密码重置wordpress wp_parse_args
  • 普通电脑可以做网站服务器吗找人做网站需要什么条件
  • 长沙公司网站的建设网站图片尺寸
  • 高端网站定制费用是多少php网站建设制作