模块

当我们用一种语言开始真正的软件开发室,除了编写代码外,还需要很多基本的已经写好的现成的东西,高级语言通常都会为我们提供了一个比较完善的基础代码库,让我们能直接调用,python也不例外,为我们提供了分成完善的基础代码和第三方库。在python中一个.py文件就是一个模块。

模块导入使用import

获取随机数模块

调用系统命令

把执行脚本时传递的参数获取到了

当我们试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错,默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中

sys.path

在Python中,安装第三方模块,是通过包管理工具pip完成的

安装第三方库

字符串编码

因为计算机只能处理二进制数字,如果要处理文本,就必须先把文本转换为二进制数字才能处理。

由于计算机是美国人发明的,因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码

计算机漂洋过海来到中国后,问题来了,计算机不认识中文,当然也没法显示中文,但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去,但是汉字太多了,GB2312也不够用,经过扩展之后的编码称为GBK标准。

全世界有上百种语言,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。现代操作系统和大多数编程语言都直接支持Unicode。

但是Unicode是用两个字节来表示一个字符,而ASCII编码是1个字节,新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。基于此,美利坚的科学家们提出来UTF-8,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。另外,ASCII编码其实可以看成是UTF-8编码的一部分。

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8、GBK等编码。

我们的文本编辑器软件都有默认的保存文件的编码方式,比如utf8,比如gbk。当我们点击保存的时候,这些编辑软件已经"默默地"帮我们做了编码工作,那当我们再打开这个文件时,软件又默默地给我们做了解码的工作,将数据再解码成unicode,然后就可以呈现给用户了!

我们的文本编辑器有自己默认的编码解码方式,我们的解释器也有默认的编码方式,python2默认ASCII码,python3默认的utf8,可以通过如下方式查询

sys.getdefaultencoding()

由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行

声明

第一行注释是为了告诉Linux系统,这是一个Python可执行程序,Windows系统会忽略这个注释;第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码.

python中可以通过encode() 方法以指定的编码格式编码字符串,decode()方法是解码

encode()和decode()

文件读写

文件读写使用Python内置的open()函数,传入文件名、标示符和字符编码

“r”开放阅读(不填写标示符默认是读取),read()读取文件,记得一定要关闭close()

read()

readline()读一行

readlines()以列表形式全部读取

循环方式读取

tell()和seek()

可以使用readable()和writable()判断文件是否可读写

“w”开放写作,文件不存在创建文件,文件存在覆盖写入

write()

file2

write()执行过程是先写入内存,等close()之后再写入硬盘,如果要边写边保存,需要使用flu

可以使用readable()和writable()判断文件是否可读写

“x”创建一个新文件并将其打开以供写作,文件存在报错

“x”

“a”用于书写,如果存在,则附加到文件的末尾。

追加模式

可以使用readable()和writable()判断文件是否可读写

"+" 表示可以同时读写某个文件,r+可读可写,w+可写可读,a+可写可读

“+”

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

"U"

"b"表示处理二进制文件(rb、wb、ab)

"b"

为了避免打开文件忘了关闭,python可以通过with语句来自动帮我们调用close(),当with代码块执行完毕时,内部会自动关闭并释放文件资源

with

with又支持同时对多个文件的上下文进行管理

转载于:https://www.cnblogs.com/lyzyy/p/8313484.html

python模块、字符编码、文件读写相关推荐

  1. (转载)Python常见字符编码间的转换

    Python常见字符编码间的转换 主要内容:     1.Unicode 和 UTF-8的爱恨纠葛     2.字符在硬盘上的存储     3.编码的转换     4.验证编码是否转换正确     5 ...

  2. python转换字符编码_转:Python常见字符编码及其之间的转换

    一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交 ...

  3. python转换字符编码_Python常见字符编码间的转换

    学习Python,字符编码间的转换是绕不过去的一只拦路虎,不把编码彻底搞明白,总有一天它会猝不及防坑你一把. Python2.x和Python3.x在字符编码的设置上也有很大区别(Python3未来将 ...

  4. Python常见字符编码及其之间的转换

    参考:Python常见字符编码 + Python常见字符编码间的转换 一.Python常见字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Cod ...

  5. python中gbk字符原因报错_不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码...

    原标题:不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码 程序员都自视清高,觉得自己是创造者,经常鄙视不太懂技术的产品或者QA.可悲的是,程序员之间也相互鄙视,程序员的鄙视链流传甚广, ...

  6. python特训营-文件读写

    课程目标 Python内置的文件读写操作 通过OS模块进行文件和文件夹操作 通过OS模块进行路径操作 Python内置的文件读写操作 • open() 打开或者创建一个文件 格式:open('文件路径 ...

  7. python模块os测试文件是否存在及基础原信息获取

    python模块os测试文件是否存在及基础原信息获取 在自动化测试中,经常需要查找操作文件,比如说查找配置文件(从而读取配置文件的信息),查找测试报告(从而发送测试报告邮件),经常要对大量文件和大量路 ...

  8. Python实现base64编码文件转化为jpg/png/jpeg/格式图片

    Python实现base64编码文件转化为jpg/png/jpeg/格式图片 这个base64文件是图片转化的才行,不是随便找个base64文件都行的 base64图片文件qiaoba.py /9j/ ...

  9. 【爬虫】获取网页编码、chardet库、Python的字符编码

    目录 1.常用网页编码有 2.怎么知道一个网页的编码? 我们知道可以从审查元素(F12)通过查看元素获得. 那么有没有一种方法可以通过代码获取到编码呢? 3.chardet库 1.安装 2.chard ...

  10. Python常用字符编码(转)

    Python常用字符编码 字符编码的常用种类介绍 第一种:ASCII码 ASCII(American Standard Code for Information Interchange,美国信息交换标 ...

最新文章

  1. 怎样设计一个商城项目?
  2. Express 搭建web服务器
  3. linux怎么修改sftp默认端口,如何在 Linux 系统中如何更改 SFTP 端口
  4. 一款基于RxJava2+Retrofit2实现简单易用的网络请求框架
  5. boost::char_separator相关的测试程序
  6. linux编程课后作业,Unix/Linux 编程实践教程第三章习题
  7. 第25版 OpenStack Yoga 已发布
  8. 人脸识别的Python库
  9. MapReduce的模式、算法和用例
  10. YUV、RGB、RAW DATA 3种Sensor输出格式 详解
  11. 交换机芯片与路由器芯片的区别
  12. python控制小爱同学_GitHub - xinruoyusixian/Blinker-for-xiaoai: 基于micopython 的小爱同学的代码...
  13. 佛山科目三仙塘中腾考场-考试要点(已经有新考场,这是旧考场经验)
  14. 计算机主机号是什么意思,在一台计算机的IP地址中,网络号和主机号指的是什么?...
  15. H5+CSS+JavaScript入门学习
  16. 基于Windows下的Web性能测试和压力测试
  17. Ubuntu GNOME插件
  18. DMOZ介绍以及如何提交
  19. 微型计算机中奇偶校验,奇偶校验位
  20. Markdown 5分钟的语法课

热门文章

  1. Alphabet以3.8亿美元收购董事格林创业公司Bebop
  2. Linux下使用Vi是方向键变乱码 退格键不能使用的解决方法
  3. 浅谈Perl的类、包、模块与面对对象编程
  4. centos下apache源码编译安装
  5. Unix平台上OUI启动常见问题
  6. ways to keep health
  7. 两点感悟:关于教育与未来
  8. 明天mbzuai面试的准备,严阵以待
  9. apple MacBook air m1是我认为最非常适合学生的笔记本
  10. 【转】volatile关键字。编译器不优化,多线程会改。防止随时变动的