Python模块、字符编码、文件读写

模块

当我们用一种语言开始真正的软件开发室,除了编写代码外,还需要很多基本的已经写好的现成的东西,高级语言通常都会为我们提供了一个比较完善的基础代码库,让我们能直接调用,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 或 r+ 模式同使用)

"U"

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

"b"

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


with


最后,如果你跟我一样都喜欢python,想成为一名优秀的程序员,也在学习python的道路上奔跑,欢迎你加入python学习群:839383765 群内每天都会分享最新业内资料,分享python免费课程,共同交流学习,让学习变(编)成(程)一种习惯!

原文地址:http://blog.51cto.com/14186420/2349269

时间: 2024-09-29 19:43:34

Python模块、字符编码、文件读写的相关文章

python数据类型 字符编码 文件处理

一.数据类型种类 字符串 数字(整型.浮点型.长整型.复数) 列表 字典 元组 集合 二.各种类型数据介绍 1.数字 整型 int 作用:用来表示整数类型的数据 浮点型 float 作用:用来表示小数类型的数据 长整型 只有python2中有长整型的概念,python3中没有 复数 >>> x=1-2j >>> x.real 1.0 >>> x.imag -2.0 2.字符串 作用:表示字符类型的数据 定义:在单引号\双引号\三引号内,由一串字符组成

python 处理字符编码问题

今天好不容易重新开始写Python做实验,结果被字符编码虐的体无完肤.其实之前就已经比较清楚python处理字符编码的套路,但是今天白天反复的出现can't encode/decode ..., the original code not in 178之类的提示,甚是无力,后来偶尔使用了一下sys.setdefaultencoding('utf8')就解决了全部问题,真是不解. 下面还是总结一下Python几个编码设置的含义吧. 1. #coding=utf8 这种形式的注释告诉解释器,应该以c

Python常见字符编码间的转换

学习Python,字符编码间的转换是绕不过去的一只拦路虎,不把编码彻底搞明白,总有一天它会猝不及防坑你一把. Python2.x和Python3.x在字符编码的设置上也有很大区别(Python3未来将是主流,所以Python3为主),今天我们就来一起学习下. 上一篇文章里我已经简述了Python的常见编码了,这里就不再赘述了,还不清楚的小伙伴可以先去看下:     http://www.cnblogs.com/schut/p/8406897.html 一.Unicode 和 UTF-8的纠葛 U

python开发基础:字符编码&文件操作

一,字符编码 1 以什么编码存的就要以什么编码取出 ps:内存固定使用unicode编码, 我们可以控制的编码是往硬盘存放或者基于网络传输选择编码 2 数据是最先产生于内存中,是unicode格式,要想传输需要转成bytes格式#unicode----->encode(utf-8)------>bytes拿到bytes,就可以往文件内存放或者基于网络传输#bytes------>decode(gbk)------->unicode 3 python3中字符串被识别成unicode

Python基础(字符编码与文件处理)

一.了解字符编码的知识储备 1.计算机基础知识(三副图) 2.文本编辑器存取文件的原理(notepad++,Pycharm,word) 打开编辑器就启动了一个进程,是在内存中运行的,所以在编辑器写的内容在没保存之前都是存放在内存中的,断电后数据就会丢失.因而需要保存到硬盘上,点击保存按钮,就从内存中把数据刷到硬盘上. 3.Python解释器执行py文件的与原理,例如python test.py 第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器. 第二阶段:python解释器相当

python字符编码文件

字符编码发展 ASCII 255   只支持英文字母和数字,特殊字符   1bytes Unicode     中文和英文               统一2bytes utf-8      中文>3bytes  英文>1bytes bytes类型 文本数据总是unicode由str类型表示,二进制数据则由bytes类型表示 二进制数据用在视频,音频文件以及发送socket网络传输数据等 字符串转成二进制  str.encode("encoding=utf-8") 二进制转

Python基础day-5[字符编码,文件处理,函数]

字符编码: 为什么要有字符编码?字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 字符编码其实就是在完成一件,字符====>数字的翻译过程. ASCII: 最早计算机是美国发明的,所以最早诞生的ASCII码也是基于英文考虑的.ASCII码:一个Bytes代表一个字符,1Bytes=bit.最早的ASCII只用到后七位. 127个数字,已经完全能代表键盘了,后来又把127号之后的空位来表示新的字母.符号,还加入

Python自动化开发课堂笔记【Day03】 - Python基础(字符编码使用,文件处理,函数)

字符编码使用 1. 文本编辑器如何存取文件 文本编辑器相当一个运行在内存中的进程,所以文件内容在编辑未存储时都是在内存中的,尚未存储在硬盘之中,在没有保存之前,所编辑的任何文本都只是一堆字符,没有任何逻辑上的意义,当存储文件的时候需要以一定的编码格式存储于硬盘之中,当进行文件读取的时候也需要以同样的编码格式进行读取到内存之中进行操作,如果存储文件的编码和读取文件的编码不一致则会引起读取过程中的乱码导致文件操作失败. P.S. --> Python解释器执行py文件的原理. Step1. Pyth

Python:字符编码详解

相关文章 Python中文编码问题:为何在控制台下输出中文会乱码及其原理 1. 字符编码简介 1.1. ASCII ASCII(American Standard Code for Information Interchange),是一种单字节的编码.计算机世界里一开始只有英文,而单字节可以表示256个不同的字符,可以表示所有的英文字符和许多的控制符号.不过ASCII只用到了其中的一半(\x80以下),这也是MBCS得以实现的基础. 1.2. MBCS 然而计算机世界里很快就有了其他语言,单字节

Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从磁盘读取文件到内存,就只有Input操作,反过来,把数据写到磁盘文件里,就只是一个Output操作. 由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题.举个例子来说,比如要把100M的数据写入磁盘,CPU输出100M的数据只需要0.01秒,可是磁盘要接收这10