当前位置: 简表范文网 > 专题范文 > 公文范文 >

python读程序写结果题库【优秀范文】

| 来源:网友投稿

下面是小编为大家整理的python读程序写结果题库【优秀范文,供大家参考。

python读程序写结果题库【优秀范文】

 

 python 读程序写结果题库 IO 操作与读写文件 读写文件是最常见的 IO 操作。Python 内置了读写文件的函数,用法和 C 是兼容的。不论哪种,一定要注意编码和解码的一致性,否则会出现乱码或报错。

 打开文件 python 中文件的读取封装后,使用时非常简单,读取文件调用 open()函数,返回一个文件对象。例如:

 my_test_file = open("io_test.txt", "r") 打开文件:open()函数 open()函数详细解释:

 open()函数返回一个文件对象,最常用的有两个参数:open(filename, mode) 第一个参数是包含文件名的字符串。

 第二个参数是另一个字符串,其中包含一些描述文件使用方式的字符。

 模式可以是"r"仅读取文件时,"w" 仅写入(将删

 除同名的现有文件),并 "a"打开文件进行追加; 写入文件的任何数据都会自动添加到最后。

 "r+"打开文件进行读写。所述模式参数是可选的; "r"将被假设,如果它被省略。

 通常,文件以文本模式打开,这意味着从文件读取和写入文件,这些文件以特定编码进行编码。如果未指定编码,则默认值取决于平台。"b"附加到模式后以二进制模式打开文件 :现在以 bytes 对象的形式读取和写入数据。此模式应用于所有不包含文本的文件。如下表所示:

 不同模式打开文件 在文本模式下,读取时的默认设置是将平台特定的行结尾( 在 Unix 上, 在 Windows 上)转换为 just 。在文本模式下写入时,默认设置是将事件的发生转换 为特定于平台的行结尾。这幕后的修改文件数据精细的文本文件,但会喜欢,在破坏了二进制数据 JPEG 或 EXE 文件。在读取和写入此类文件时要非常小心地使用二进制模式。

 # 打开文件:第一种写法 try:

 my_test_file = open("io_test.txt", "r") # content = my_test_file.read() # print(content) finally: if my_test_file: my_test_file.close() # 打开文件:第二种写法 with open("io_test.txt", "r") as f: # print("f:", f.read() + " ") lines = f.readlines() for index, line in enumerate(lines): print("第{0}行:{1}".format(index, line)) # 以二进制方式打开图片 with open("2.jpg", "r") as pic: print( pic.read())

 with 在处理文件对象时,最好使用关键字。优点是文件在套件完成后正确关闭,即使在某个时刻引发了异常。使用 with也比写相当于短得多 try...finally 块:

 如果您没有使用该 with 关键字,那么您应该调用 f.close()以关闭该文件并立即释放它使用的任何系统资源。如果您没有显式关闭文件,Python 的垃圾收集器最终将销毁该对象并为您关闭打开的文件,但该文件可能会保持打开状态一段时间。另一个风险是不同的 Python 实现将在不同的时间进行清理。

 通过 with 语句或通过调用关闭文件对象后 f.close(),再尝试使用该文件对象将自动失败。会报错:

 Traceback (most recent call last): File "", line 1, in

 ValueError: I/O operation on closed file. 文件对象的方法 打开文件后,就要进行读写操作了。本小节中的下面的示例将假定 f 是已创建一个名为 f 的文件对象 ,即有:

 with open("io_test.txt", "r") as f:

 f.read(size)读取文件的内容 要读取文件的内容,请调用 f.read(size),读取一些数据并将其作为字符串(在文本模式下)或字节对象(在二进制模式下)返回。

 size 是可选的数字参数。当省略不传 size 或为负数时,将读取并返回文件的全部内容; 如果文件的大小是机器内存的两倍,那么这就是你的问题。否则,最多读取并返回大小字节。如果已到达文件末尾,f.read()则返回空字符串("")。

 io_test.txt 文件中的内容是: 2018 年世界杯半决赛全部结束,7 月 15 日 23:00 法国和克罗地亚将会师决赛竞逐大力神杯,7 月 14 日 22:00 比利时与英格兰队争夺第三名。

 例 1:当省略不传 size 或为负数时,将读取并返回文件的全部内容:

 with open("io_test.txt", encoding="utf-8") as f: content_str = f.read() print(content_str) 或者:

 with open("io_test.txt", encoding="utf-8") as f: content_str = f.read(-1) print(content_str) 运行结果都是:

 2018 年世界杯半决赛全部结束,7 月 15 日 23:00 法国和克罗地亚将会师决赛竞逐大力神杯,7 月 14 日 22:00 比利时与英格兰队争夺第三名。

 f.readline()读取一行内容 readline()函数详细解释:

 readline()函数返回一个从文件中读取一行内容,可以省略参数或者传入一个参数:readline(limit) limit 参数表示:最大限制可读取 limit 个字符。如果实际读取到的内容字符数小于等于传入的 limit 的值,则按照实际读入的返回,否则就只返回 limit 个字符(且此时下一行内容按照后面未读取到的内容开始算起)。

 f.readline()从文件中读取一行; 换行符 留在字符串的末尾,如果文件没有以换行符结尾,则只在文件的最后一行省略。这使得返回值明确无误。

 如果 f.readline()返回一个空字符串,则表示已到达文件末尾;如果 f.readline()返回一个 只包含一个换行符的字符串,则表示当前行是空行。

 再次提示:

 当 f.readline()读到空行时,返回结果是:

 ;当 f.readline()读到文件末尾时,返回结果是:空字符串""。

 项目中有文件 io_test.txt 内容如下:

 2018 年俄罗斯世界杯是第 21 届世界杯足球赛。

 2022 年卡塔尔世界杯是第 22 届世界杯足球赛。

 readline()函数不传入参数时,编写测试代码:

 with open("io_test.txt", encoding="utf-8") as f: s1 = f.readline() print(s1)

 s2 = f.readline() print(s2) 运行结果:

 2018 年俄罗斯世界杯是第 21 届世界杯足球赛。

 2022 年卡塔尔世界杯是第 22 届世界杯足球赛。

 readline()函数传入参数 limit 时,编写测试代码:

 with open("io_test.txt", encoding="utf-8") as f: s1 = f.readline(4) print(s1) s2 = f.readline() print(s2) s3 = f.readline() print(s3) 运行结果如下:

 2018

 年俄罗斯世界杯是第 21 届世界杯足球赛。

 2022 年卡塔尔世界杯是第 22 届世界杯足球赛。

 即:如果实际读取到的内容字符数小于等于传入的 limit 的值,则按照实际读入的返回,否则就只返回 limit 个字符(且此时下一行内容按照后面未读取到的内容开始算起)。

 f.readlines()函数:读取文件中的所有行 如果要读取文件的所有行,使用 f.readlines(),返回该文件中包含的所有行。

 如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。。

 # readlines with open("io_test.txt", encoding="utf-8") as f: lines = f.readlines() for line in lines: print(line) 运行结果:

 2018 年俄罗斯世界杯是第 21 届世界杯足球赛。

 2022 年卡塔尔世界杯是第 22 届世界杯足球赛。

 另一种方式是迭代一个文件对象然后读取每行: with open("io_test.txt", encoding="utf-8") as f: for line in f: print(line,end="") 运行结果:

 2018 年俄罗斯世界杯是第 21 届世界杯足球赛。

 2022 年卡塔尔世界杯是第 22 届世界杯足球赛。

 提示:这个方法很简单, 但是并没有提供一个很好的控制。

 因为两者的处理机制不同, 最好不要混用。

 f.write()函数:将 string 写入到文件中, 然后返回写入的字符数。

 f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。

 写入文件,这次采用的权限模式是:

 w 表示:打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

 运行前:文件目录 运行前,文件目录中是没有 file_write.txt 文件的,如上图。

 # f.write() with open("file_write.txt","w+", encoding="utf-8") as f: count = f.write("Python is an elegant program language") print(count) 运行结果:(影响 3 个)

 1.文件目录的变化:创建出了 file_write.txt 文件。

 运行后:文件目录

 2.在新创建出的 file_write.txt 文件中写入了内容:Python is an elegant program language,如下图:

 file_write.txt```文件中的内容 3.打印结果:

 37 返回此次写入的字符数。

 如果要写入一些不是字符串的东西,如元组、字典, 那么将需要先进行转换。

 例如:

 # 写入元组 with open("file_write_tuple.txt", "w", encoding="utf-8") as f: t = (2018, "二 0 一八年") count = f.write(str(t)) print(count)

 运行结果:(影响 3 个)

 1.1.文件目录的变化:创建出了 file_write_tuple.txt 文件。

 2.在新创建出的 file_write_tuple.txt 文件中写入了内容:(2018, "二 0 一八年") 3.打印结果:

 15 f.tell()函数 f.tell()函数,返回文件对象当前指针所处的位置, 它是从文件开头开始算起的字节数。

 f.seek(offset, from_what) 函数, 如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数。

 from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾,例如:

 seek(x,0) :

 从起始位置即文件首行首字符开始移动 x 个字符 seek(x,1) :

 表示从当前位置往后移动 x 个字符 seek(-x,2):表示从文件的结尾往前移动 x 个字符 from_what 值可以省略,默认为 0,即文件开头。下面给出一个完整的例子:

 # seek() with open("file_write_bit.txt", "wb+") as f: f.write(b"0123456789abcedfgh") s_3 = f.seek(3) print(s_3) print(f.tell()) print(f.read(1)) print("--------------") s_4 = f.seek(4, 1)

 print(s_4) print(f.tell()) print(f.read(1)) 运行结果:

 3 3 b"3" -------------- 8 8 b"8" f.close()函数 在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位。

 当你处理完一个文件后, 调用 f.close()来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。ValueError: I/O operation on closed file. # 读取文件:第一种写法 try: my_test_file = open("io_test.txt", encoding="utf-8") content = my_test_file.read() print(content) finally: if my_test_file: my_test_file.close() 当处理一个文件对象时, 使用 with 关键字是非常好的方式。在结束后, 它会帮你正确的关闭文件。

 而且写起来也比 try - finally 语句块要简短。

 # 读取文件:第二种写法 with open("io_test.txt", "r") as f:

 文件对象还有其他方法, 如 isatty() 和 trucate(), 但这些通常比较少用。

 pickle 模块 python 的 pickle模块实现了基本的数据序列和反序列化。

 通过 pickle 模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。

 通过 pickle 模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

 基本接口:

 pickle.dump(obj, file, [,protocol]) 有了 pickle 这个对象, 就能对 file 以读取的形式打开: x = pickle.load(file) 注解:从 file 中读取一个字符串,并将它重构为原来的python 对象。

 file: 类文件对象,有 read()和 readline()接口。

 以 Json 数据结构保存数据

 我们已经可以轻松地将字符串写入文件并从文件中读取。数字需要更多的努力,因为该 read()方法只返回字符串,必须将其传递给类似的函数 int(),它接受类似字符串"123" 并返回其数值 123.当您想要保存更复杂的数据类型(如嵌套列表和字典,手工解析和序列化变得复杂)。

 Python 允许使用称为 Json 的流行数据交换格式,而不是让用户不断编写和调试代码,以将复杂的数据类型保存到文件中。调用的标准模块 json,可以采用 Python 数据层次结构,并将它们转换为字符串表示形式,这个过程称为序列化。从字符串表示中重建数据称为反序列化。在序列化和反序列化之间,表示对象的字符串可能已存储在文件或数据中,或通过网络连接发送到某个远程服务器。

 提示 JSON 格式通常被现代应用程序用于允许数据交换的首要选择。

 序列化 我们把变量从内存中变成可存储或传输的过程称之为序列化,在 Python 中叫 pickling,在其他语言中也被称之为serialization,marshalling,flattening 等等,都是一个意思。

 反序列化 序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即 unpickling。Python提供了 pickle 模块来实现序列化。

 Python 内置的 json 模块提供了非常完善的 Python 对象到JSON 格式的转换。我们先看看如何把 Python 对象变成一个JSON。

 如果您有一个对象 x,则可以使用一行简单的代码查看其JSON 字符串表示:

 import json # 把对象转换为 Json 字符串 t = [2018, "21 届世界杯", "俄罗斯"] # 核心代码,使用前要先导入 json 模块,此处是 json.dumps(t)方法,区别于方法 json.dump(t,f) json_str = json.dumps(t) print(t)

 print(json_str) 运行结果:

 [2018, "21 届世界杯", "俄罗斯"] [2018, "21 届世界杯", "俄罗斯"] 提示:

 1.使用前要先导入 json 模块,此处是 json.dumps(t)方法,区别于方法 json.dump(t,f)。如果你遇到了下面错误,请检查方法是否使用错误:

 Traceback (most recent call last): File "F:/python_projects/io_file/my_file.py", line 84, in

 json_str = json.dump(t) TypeError: dump() missing 1 required positional argument: "fp" 此文中用的 python 是 3.5,在版本 3.6 中已更改:所有可选参数现在仅为关键字。

 ...

相关推荐

热门文章

关于珍爱生命作文800字高中【精选推荐】

范文参**网最近发表了一篇名为《2022关于珍爱生命的作文800字高中【】》的范文,感觉写的不错,希望对您有帮助,重新整理了一下发到这里。在平日的学习、工作和生活里,大家都不可避免地要接触到作文吧。下面小编为大家整理了2022关于的作文800字高中【5

2022清明网上祭英烈活动心得感悟经典范本10篇600字

本页是最新发布的《清明网上祭英烈活动心得感悟经典范文10篇600字》的详细范文参考文章,觉得有用就收藏了,希望大家能有所收获。清明祭心得感悟经典范文10篇600字说到清明节这个大家熟悉的节日,大家一定都是去祭拜祖先!但是可曾想过在清明节这天来祭奠我们的英烈们呢?下面是小编为您推荐

共青团成立100周年作文600字(完整)

本页是最新发布的《2022共青团成立100周年作文600字【精选】》的详细范文参考文章,好的范文应该跟大家分享,这里给大家转摘到。共青团员是中国共产党的后备力量,也是党的生命力的源,理论上的成熟是****上成熟的基础,****上的清醒来源于理论上的坚定。下面是小编为大家带来的

2022祖国在我心中演讲稿最新10篇(范文推荐)

最近发表了一篇名为《祖国在我心中演讲稿最新10篇》的范文,感觉很有用处,希望大家能有所收获。演讲是一门艺术。好的演讲自有一种激发听众情绪、赢得好感的鼓动性。要做到这一点,首先要依靠演讲稿思想内容的丰富、深刻,见解精辟,有独到之处,发人深思,语言表达要形象、生动,富有感染力。下面小编给大家带

2022全国中小学生安全教育日心得体会三篇

最近发表了一篇名为《2022全国中小学生安全教育日心得体会三篇》的范文,感觉写的不错,希望对您有帮助,重新编辑了一下发到。2022全国中小学生日心得体会三篇为贯彻落实珍爱,安全第一为主题的中小学安全日教育活动,我校领导高度重视,紧紧围绕安全日安全教育这一主线,在师生中开展了丰富多

2022年度关于端正态度作文初三(精选文档)

《2022关于端正态度的作文初三【精选】》是一篇好的范文,觉得有用就收藏了,看完如果觉得有帮助请记得(CTRL+D)收藏本页。在生活、工作和中,大家都不可避免地要接触到作文吧,作文是通过文字来表达一个主题意义的记叙方法。下面小编为大家整理了2022关于端正的作文初三【精选】的相关内容,以供参

草房子第一章秃鹤心得感悟合集【精选推荐】

《草房子第一章秃鹤的心得感悟》是一篇好的范文,觉得有用就收藏了,这里给大家转摘到。草讲述了发生在20世纪60年代初江南水乡动人动情的童年故事。读完了草房子小说,你有着怎样的草房子读书?你是否在找正准备撰写“草房子第一章秃鹤的心得感悟”,下面小编收集了相关的素材,供大家写文参考!草房子第

2022年大学生档案自我鉴定300字10篇

2022年普通大学生个人社会实践实习报告精选服务社会做好思想准备和业务准备,公司内部电脑系统都是统一英文系统,就要求自己以职场……[详细]2022年党员思想汇报例文两篇【完整版】所以在以后的学习和生活中,经历过苦难的中国,工作以及生活中,特别是通过学习党章党纪……[详细]企业员工服务意识培训心得体会

2022年爱细节作文600字初中范本

《2022爱的细节作文600字初中范文【】》是一篇好的范文,觉得应该跟大家分享,希望对网友有用。爱是冬日的一缕阳光,使饥寒交迫的人感到人间的温暖;爱是一场洒落在久旱的土地上的甘霖,使濒临绝境的人重新看到生活的希望;爱是一首飘落在夜空里的歌谣,使孤苦无依的人获得心灵的慰藉。下面小编为大家整理了20

2022年争先创优演讲稿最新10篇(完整文档)

《争先创优演讲稿最新10篇》是一篇好的范文,觉得有用就收藏了,这里给大家转摘到。演讲稿具有宣传、鼓动、教育和欣赏等作用,它可以把演讲者的观点、主张与思想感情传达给听众以及读者,使他们信服并在思想感情上产生共鸣。下面小编给大家带来关于争先创优演讲稿,希望会对大家的与有所帮助。争先创优演讲稿1

2022百年奋斗谋复兴勇毅前行兴伟业学习心得体会范本合集

《2022百年奋斗谋复兴勇毅前行兴伟业学习心得体会范文》是一篇好的范文,觉得有用就收藏了,希望对网友有用。2022百年奋斗谋复兴勇毅前行兴伟业学习心得体会范文了不起的红色精神,值得永远待播与发扬下去!相信祖国将会更加强大,更加繁荣富强。下面是小编为您推荐2022百年奋斗谋复兴勇毅前

2022年度《公民节约用水行为规范》倡议书范本

最近发表了一篇名为《2022《公民节约用水行为规范》倡议书范文【五篇】》的范文,感觉很有用处,看完如果觉得有帮助请记得(CTRL+D)收藏本页。虽然人类已浪费了许多,但是人类们已经感觉到水的可贵而开始保护起来。在此大家一起杜绝浪费水之源,保护水资源吧。下面小编在这里为大家精心整理了几篇20