栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 核心技术概述(五)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 核心技术概述(五)

Python 输入与输出 输入输出基础
  • 最简单直接的输入来自键盘操作:
  • input() 函数暂停程序运行,同时等待键盘输入;直到回车被按下,函数的参数即为提示语,输入的类型永远是字符串型(str)。
    • 把 str 强制转换为 int 请用 int(),转为浮点数请用 float()。
    • 在生产环境中使用强制转换时,请记得加上 try except。
文件输入输出
  • 命令行的输入输出,只是 Python 交互的最基本方式,适用一些简单小程序的交互。而生产级别的 Python 代码,大部分 I/O 则来自于文件、网络、其他进程的消息等等。
  • 首先我们需要先了解一下,计算机中文件访问的基础知识。
    • 事实上,计算机内核(kernel)对文件的处理相对比较复杂,涉及到内核模式、虚拟文件系统、锁和指针等一系列概念。
    • 我们先要用 open() 函数拿到文件的指针。
      • 其中,第一个参数指定文件位置(相对位置或者绝对位置);
      • 第二个参数,如果是 ‘r’表示读取,如果是’w’ 则表示写入,当然也可以用 ‘rw’ ,表示读写都要。a 则是一个不太常用(但也很有用)的参数,表示追加(append),这样打开的文件,如果需要写入,会从原始文件的最末尾开始写入。
    • 在拿到指针后,我们可以通过 read() 函数,来读取文件的全部内容。代码 text = fin.read() ,即表示把文件所有内容读取到内存中,并赋值给变量 text。
      • 我们可以给 read 指定参数 size ,用来表示读取的最大长度。
      • 还可以通过 readline() 函数,每次读取一行,这种做法常用于数据挖掘(Data Mining)中的数据清洗,在写一些小的程序时非常轻便。如果每行之间没有关联,这种做法也可以降低内存的压力。
    • write() 函数,可以把参数中的字符串输出到文件中,也很容易理解。
  • open() 函数对应于 close() 函数。
    • 如果你打开了文件,在完成读取任务后,就应该立刻关掉它。
    • 而如果你使用了 with 语句,就不需要显式调用 close()。
    • 在 with 的语境下任务执行完毕后,close() 函数会被自动调用,代码也简洁很多。
  • 最后需要注意的是,所有 I/O 都应该进行错误处理。
    • 因为 I/O 操作可能会有各种各样的情况出现,而一个健壮(robust)的程序,需要能应对各种情况的发生,而不应该崩溃(故意设计的情况除外)。
JSON 序列化与实战
  • JSON(Javascript Object Notation)是一种轻量级的数据交换格式,它的设计意图是把所有事情都用设计的字符串来表示,这样既方便在互联网上传递信息,也方便人进行阅读(相比一些 binary 的协议)。
    • json.dumps() 这个函数,接受 Python 的基本数据类型,然后将其序列化为 string;
    • json.loads() 这个函数,接受一个合法字符串,然后将其反序列化为 Python 的基本数据类型。
    • 请记得加上错误处理。不然,哪怕只是给 json.loads() 发送了一个非法字符串,而你没有 catch 到,程序就会崩溃了。
  • 当开发一个第三方应用程序时,你可以通过 JSON 将用户的个人配置输出到文件,方便下次程序启动时自动读取。这也是现在普遍运用的成熟做法。
本节小结
  • I/O 操作需谨慎,一定要进行充分的错误处理,并细心编码,防止出现编码漏洞。
  • 编码时,对内存占用和磁盘占用要有充分的估计,这样在出错时可以更容易找到原因。
  • JSON 序列化是很方便的工具,要结合实战多多练习。
  • 代码尽量简洁、清晰,哪怕是初学阶段,也要有一颗当元帅的心。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/461710.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号