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

市场营销的主要应用领域网站做整站做优化

市场营销的主要应用领域,网站做整站做优化,网页设计制作与代码整体素材,广州海珠建网站的公司第十一节-文件操作#xff08;IO技术#xff09;文本文件和二进制文件文件操作相关模块概述创建文件对象 open()文本文件的写入基本的文件写入操作常用编码介绍ASCIIISO8859-1GB2312,GBK,GB18030中文乱码问题write()/writelines()写入数据close()关闭文件流with 语句(上下文管… 第十一节-文件操作IO技术文本文件和二进制文件文件操作相关模块概述创建文件对象 open()文本文件的写入基本的文件写入操作常用编码介绍ASCIIISO8859-1GB2312,GBK,GB18030中文乱码问题write()/writelines()写入数据close()关闭文件流with 语句(上下文管理器)文本文件的读取二进制文件的读取和写入文件对象的常用属性和方法文件任意位置操作使用 pickle 序列化CSV 文件的操作csv.reader 对象和 csv 文件读取csv.writer 对象和 csv 文件写入os 和 os.path 模块os 模块-调用操作系统命令os 模块-文件和目录操作os.path 模块【示例】列出指定目录下所有的.py 文件并输出文件名walk()递归遍历所有文件和目录shutil 模块(拷贝和压缩)递归文本文件和二进制文件 按文件中数据组织形式我们把文件分为文本文件和二进制文件两大类。 文本文件 文本文件存储的是普通“字符”文本python 默认为 unicode 字符集两个字节表示一个字符最多可以表示65536 个可以使用记事本程序打开。但是像 word 软件编辑的文档不是文本文件。二进制文件 二进制文件把数据内容用“字节”进行存储无法用记事本打开。必须使用专用的软件解码。常见的有MP4 视频文件、MP3 音频文件、JPG 图片、doc 文档等等。 文件操作相关模块概述 创建文件对象 open() open()函数用于创建文件对象基本语法格式如下 open(文件名[,打开方式]) 如果只是文件名代表在当前目录下的文件。文件名可以录入全路径比如D:\a\b.txt。 为了减少“\”的输入可以使用原始字符串r“d:\b.txt”。示例如下 fopen(rd:\b.text,w)文本文件对象和二进制文件对象的创建 如果我们没有增加模式“b”则默认创建的是文本文件对象处理的基本单元是“字 符”。如果是二进制模式“b”则创建的是二进制文件对象处理的基本单元是“字节”。 文本文件的写入 基本的文件写入操作 文本文件的写入一般就是三个步骤 创建文件对象写入数据关闭文件对象 我们首先创建一个小程序体验一下文本文件的写入操作。 【操作】文本写入操作简单测试 fopen(ra.txt,a) sgaoshang\nrui\n f.write(s) f.close()常用编码介绍 在操作文本文件时经常会操作中文这时候就经常会碰到乱码问题。为了让大家有能力解决中文乱码问题这里简单介绍一下各种编码之间的关系。 ASCII 全称为 American Standard Code for Information Interchange美国信息交换标准代码这是世界上最早最通用的单字节编码系统主要用来显示现代英语及其他西欧语言。 ASCII 码用 7 位表示只能表示 128 个字符。只定义了 2 7 128 个字符用7bit 即可完全编码而一字节 8bit 的容量是 256所以一字节 ASCII 的编码最高位总是 0。 031 表示控制字符如回车、退格、删除等32126 表示打印字符即可以通过键盘输入并且能显示出来的字符其中 4857 为 0 到 9 十个阿拉伯数字6590 为 26 个大写英文字母97122 号为 26 个小写英文字母其余为一些标点符号、运算符号等具体可以参考 ASCII 标准表自行百度。 ISO8859-1 ISO-8859-1 又称 Latin-1是一个 8 位单字节字符集它把 ASCII 的最高位也利用起来并兼容了 ASCII新增的空间是 128但它并没有完全用完。在 ASCII 编码之上又增加了西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号它是向下兼容 ASCII 编码 GB2312,GBK,GB18030 GB2312 GB2312 全称为信息交换用汉字编码字符集是中国于 1980 年发布主要用于计算机系统中的汉字处理。GB2312 主要收录了 6763 个汉字、682 个符号。GB2312覆盖了汉字的大部分使用率但不能处理像古汉语等特殊的罕用字所以后来出现了像 GBK、GB18030 这种编码。 GB2312 完全兼容 ISO8859-1。 GBK 全称为 Chinese Internal Code Specification即汉字内码扩展规范于 1995 年制定。它主要是扩展了 GB2312在它的基础上又加了更多的汉字它一共收录了 21003 个汉字。 ·GB18030 现在最新的内码字集于 2000 年发布并于 2001 年强制执行包含了中国大部分少数民族的语言字符收录汉字数超过 70000 余个。它主要采用单字节、双字节、四字节对字符编码它是向下兼容 GB2312 和 GBK 的虽然是我国的强制使用标准但在实际生产中很少用到用得最多的反而是 GBK 和GB2312 Unicode Unicode 编码设计成了固定两个字节所有的字符都用 16 位(2^1665536)表示包括之前只占 8 位的英文字符等所以会造成空间的浪费UNICODE 在很长的一段时间内都没有得到推广应用。 Unicode 完全重新设计不兼容 iso8859-1也不兼容任何其他编码。 UTF-8 对于英文字母unicode 也需要两个字节来表示。所以 unicode 不便于传输和存储。因此而产生了 UTF 编码UTF-8 全称是8-bit Unicode Transformation Format。 UTF 编码兼容 iso8859-1 编码同时也可以用来表示所有语言的字符不过UTF 编码是不定长编码每一个字符的长度从 1-4 个字节不等。其中英文字母都是用一个字节表示而汉字使用三个字节。 【老鸟建议】一般项目都会使用 UTF-8。unicode 中虽然汉字是两个字节UTF-8 中汉字是 3 个字节。但是互联网中一个网页也包含了大量的英文字母这些英文字母只占用 1 个字节整体占用空间UTF-8 仍然由于 Unicode。 中文乱码问题 windows 操作系统默认的编码是 GBKLinux 操作系统默认的编码是 UTF-8。当我们用 open()时调用的是操作系统打开的文件默认的编码是 GBK。 【示例】中文字符文件乱码出现测试 #测试写入中文 fopen(rb.txt,w) f.write(尚\n锐\n) f.close()【示例】通过指定文件编码解决中文乱码问题 #测试写入中文 f open(rb.txt,w,encodingutf-8) f.write(尚\n程序员\n) f.close()write()/writelines()写入数据 write(a)把字符串 a 写入到文件中 writelines(b)把字符串列表写入文件中不添加换行符 【操作】添加字符串列表数据到文件中 #添加字符串列表数据到文件中 fopen(rd:\bb.txt,w,encodingutf-8) s[高老大\n,高老二\n,高老三\n] f.writelines(s) f.close()close()关闭文件流 由于文件底层是由操作系统控制所以我们打开的文件对象必须显式调用 close()方法关闭文件对象。当调用 close()方法时首先会把缓冲区数据写入文件(也可以直接调用 flush()方法)再关闭文件释放文件对象。 为了确保打开的文件对象正常关闭一般结合异常机制的 finally 或者 with 关键字实现无论何种情况都能关闭打开的文件对象。 【操作】结合异常机制 finally 确保关闭文件对象 try:fopen(rmy01txt,a)strgaoshangf.write(str) except BaseException as e:print(e) finally:f.close()with 语句(上下文管理器) with 关键字上下文管理器可以自动管理上下文资源不论什么原因跳出 with 块都能确保文件正确的关闭并且可以在代码块执行完毕后自动还原进入该代码块时的现场。 【操作】使用 with 管理文件写入操作 s[高老大\n,高老二\n,高老三\n] with open(rd:\bb.txt,w) as f:f.writelines(s)文本文件的读取 文件的读取一般使用如下三个方法 read([size]) 从文件中读取 size 个字符并作为结果返回。如果没有 size 参数则读取整个文件。 读取到文件末尾会返回空字符串。readline() 读取一行内容作为结果返回。读取到文件末尾会返回空字符串。readlines() 文本文件中每一行作为一个字符串存入列表中返回该列表 【操作】 读取一个文件前 4 个字符 with open(rbb,r,encodingutf-8) as f:print(f.read(4))【操作】文件较小一次将文件内容读入到程序中 with open(rbb,r,encodingutf-8) as f:print(f.read())【操作】按行读取一个文件 with open(rbb,r) as f:while True:fragmentf.readline()if not fragment:breakelse:print(fragment,end)【操作】使用迭代器每次返回一行读取文本文件 with open(rd:\bb.txt,r) as f:for a in f:print(a,end)高老大 高老二 高老三Process finished with exit code 0 【操作】为文本文件每一行的末尾增加行号 with open(e.txt,r,encodingutf-8) as f:linesf.readlines()lines[line.rstrip()#str(index1)\nfor index,line in enumerate(lines)] #推导生成列表with open(e.txt,w,encodingutf-8) as f:f.writelines(lines)二进制文件的读取和写入 二进制文件的处理流程和文本文件流程一致。首先还是要创建文件对象不过我们需要指 定二进制模式从而创建出二进制文件对象。例如 f open(rd:\a.txt, wb) #可写的、重写模式的二进制文件对象 f open(rd:\a.txt, ab) #可写的、追加模式的二进制文件对象 f open(rd:\a.txt, rb) #可读的二进制文件对象创建好二进制文件对象后仍然可以使用 write()、read()实现文件的读写操作。 【操作】 读取图片文件实现文件的拷贝 with open(aa.gif,rb) as f:with open(aa_copy.gif, wb) as w:for line in f.readlines():w.write(line) print(图片拷贝完成)文件对象的常用属性和方法 文件对象封装了文件相关的操作。在前面我们学习了通过文件对象对文件进行读写操作。本 节我们详细列出文件对象的常用属性和方法并进行说明。 文件任意位置操作 【示例】seek()移动文件指针示例 with open(e.txt,r,encodingutf-8) as f:print(文件名是{0}.format(f.name))print(f.tell())print(读取的内容:{}.format(str(f.readline())))print(f.tell())f.seek(16)print(读取的内容{}.format(str(f.readline())))使用 pickle 序列化 Python 中一切皆对象对象本质上就是一个“存储数据的内存块”。有时候我们需要将“内存块的数据”保存到硬盘上或者通过网络传输到其他的计算机上。这时候就需要“对象的序列化和反序列化”。 对象的序列化机制广泛的应用在分布式、并行系统上。 序列化指的是将对象转化成“串行化”数据形式存储到硬盘或通过网络传输到其他地方。反序列化是指相反的过程将读取到的“串行化数据”转化成对象。 我们可以使用 pickle 模块中的函数实现序列化和反序列操作。 序列化我们使用 pickle.dump(obj, file) obj 就是要被序列化的对象file 指的是存储的文件 pickle.load(file) 从 file 读取数据反序列化成对象 【操作】将对象序列化到文件中 import pickle with open(rd:\data.dat,wb) as f:a1高琪琪a2234a3[20,30,40]pickle.dump(a1,f)pickle.dump(a2, f)pickle.dump(a3, f)import pickle with open(rd:\data.dat,rb) as f:a1pickle.load(f)a2pickle.load(f)a3 pickle.load(f)print(a1)print(a2)print(a3)CSV 文件的操作 csv (Comma Separated Values) 是逗号分隔符文本格式常用于数据交换、Excel 文件和数据库数据的导入和导出。 与 Excel 文件不同CSV 文件中 值没有类型所有值都是字符串 不能指定字体颜色等样式 不能指定单元格的宽高不能合并单元格 没有多个工作表 不能嵌入图像图表 Python 标准库的模块 csv 提供了读取和写入 csv 格式文件的对象。 我们在 excel 中建立一个简单的表格 另存为csv(逗号分隔)我们打开查看这个 csv 文件内容 姓名,年龄,工作,薪水 高淇,18,程序员,50000 高老三,19,测试工程师,20000 高老五,20,人工智能开发,50000 csv.reader 对象和 csv 文件读取 【操作】csv.reader 对象于从 csv 文件读取数据 import csv with open(ree.csv) as ee:ee_csvcsv.reader(ee) #创建csv对象它是一个包含所有数据的列表每一行为一个元素headersnext(ee_csv) #获得列表对象包含标题行的信息print(headers)for row in ee_csv: #循环打印各行内容print(row)csv.writer 对象和 csv 文件写入 【操作】csv.writer 对象写一个 csv 文件 #【操作】csv.writer 对象写一个 csv 文件 import csvheaders[工号,姓名,年龄,地址,月薪] rows[(1001,高淇,18,西三旗 1 号院,50000),(1002,高八,19,西三旗 1 号院,30000)]with open(rb.csv,w) as b:b_csvcsv.writer(b) #创建csv对象b_csv.writerow(headers) #写入一行标题b_csv.writerows(rows)工号,姓名,年龄,地址,月薪1001,高淇,18,西三旗 1 号院,500001002,高八,19,西三旗 1 号院,30000os 和 os.path 模块 os 模块可以帮助我们直接对操作系统进行操作。我们可以直接调用操作系统的可执行 文件、命令直接操作文件、目录等等。在系统运维的核心基础。 os 模块-调用操作系统命令 ·os.system 可以帮助我们直接调用系统的命令 【示例】os.system 调用 windows 系统的记事本程序 #【示例】os.system 调用 windows 系统的记事本程序 import os os.system(notepad.exe)【示例】os.system 调用 windows 系统中 ping 命令 #【示例】os.system 调用 windows 系统中 ping 命令 import os os.system(ping www.baidu.com)【示例】运行安装好的微信 import os os.startfile(rC:\Program Files (x86)\Tencent\WeChat\WeChat.exe)os 模块-文件和目录操作 我们可以通过前面讲的文件对象实现对于文件内容的读写操作。如果还需要对文件和目录做其他操作可以使用 os 和 os.path 模块。 os 模块下常用操作文件的方法 os 模块下关于目录操作的相关方法汇总如下 #【示例】os 模块创建、删除目录、获取文件信息等 #测试os模块中关于文件和目录的操作 import os###########获取文件和文件夹相关的信息################# # print(os.name) #windows-nt linux和unix-posix # print(os.sep) #windows-\ linux和unix--\n\ # print(repr(os.linesep)) #windows-\r\n linux--\n\ # # print(os.stat(my02.py)) ###########关于工作目录的操作####################### print(os.getcwd()) # os.chdir(d:) #改变当前的工作目录为d盘根目录 # os.mkdir(书籍)###########创建目录、创建多级目录、删除#############os.mkdir(书籍) os.rmdir(书籍) #相对路径都是相对于当前的工作目录os.makedirs(电影/港台/周星驰) #os.removedirs(电影/港台/周星驰) #只能删除空目录 #os.makedirs(../音乐/香港/刘德华) #../指的是上一级目录 os.rename(电影,movie)diros.listdir(movie) print(dir)os.path 模块 os.path 模块提供了目录相关路径判断、路径切分、路径连接、文件夹遍历的操作 ####################################################################### #【示例】测试 os.path 中常用方法#测试os.path常用方法 import os import os.path ##########获取目录、文件基本信息########## ########################print(os.path.isabs(a.txt)) #是否绝对目录 print(os.path.isdir(a,txt)) #是否目录 print(os.path.isfile(a.txt)) #是否文件 print(os.path.exists(a.txt)) #文件是否存在 print(os.path.getsize(a.txt)) #文件大小 print(os.path.abspath(a.txt)) #输出绝对路径 print(os.path.dirname(a.txt)) #输出所在目录############获得创建时间、访问时间、最后修改时间############ print(os.path.getctime(a.txt)) #返回创建时间 print(os.path.getatime(a.txt)) #返回最后访问时间 print(os.path.getmtime(a.txt)) #返回最后修改时间 ################对路径进行分割、连接操作#################### path os.path.abspath(a.txt) #返回绝对路径 print(os.path.split(path)) #返回元组目录、文件print(os.path.splitext(path)) #返回元组路径、扩展名print(os.path.join(aa,bb,cc)) #返回路径aa/bb/ccFalse False True True 15 D:\PycharmProjects\MyTest\Day0724myio\a.txt1595577712.5804255 1595577712.5804255 1595577725.07714 (D:\\PycharmProjects\\MyTest\\Day0724myio, a.txt) (D:\\PycharmProjects\\MyTest\\Day0724myio\\a, .txt) aa\bb\ccProcess finished with exit code 0【示例】列出指定目录下所有的.py 文件并输出文件名 ##列出指定目录下所有的.py 文件并输出文件名 import os import os.pathpathos.getcwd() #返回当前工作目录 file_listos.listdir(path) #列出子目录和子文件for filename in file_list:posfilename.rfind(.)if filename[pos1:]py:print(filename,end\t)print(##############)file_list2[filename for filename in os.listdir(path) if filename.endswith(.py)] for filename in file_list2:print(filename,end\t)my01.py my02.py __init__.py ############## my01.py my02.py __init__.py Process finished with exit code 0walk()递归遍历所有文件和目录 os.walk()方法 返回一个 3 个元素的元组(dirpath, dirnames, filenames), dirpath要列出指定目录的路径 dirnames目录下的所有文件夹 filenames目录下的所有文件 【示例】使用 walk()递归遍历所有文件和目录 #【示例】使用 walk()递归遍历所有文件和目录 import os all_files[]pathos.getcwd() list_filesos.walk(path)for dirpath,dirnames,filenames in list_files: #返回内容放进三个变量for dir in dirnames:all_files.append(os.path.join(dirpath,dir)) #dirpath要列出指定目录的路径for name in filenames:all_files.append(os.path.join(dirpath,name)) #dirnames目录下的所有文件夹 #打印子目录和子文件 for file in all_files:print(file)shutil 模块(拷贝和压缩) shutil 模块是 python 标准库中提供的主要用来做文件和文件夹的拷贝、移动、删除等还可以做 文件和文件夹的压缩、解压缩操作。 os 模块提供了对目录或文件的一般操作。shutil 模块作为补充提供了移动、复制、压缩、解压等操 作这些 os 模块都没有提供。 【示例】实现文件的拷贝 #实现文件的拷贝 import shutil #copy 文件内容 shutil.copyfile(1.txt,1_copy.txt)【示例】实现递归的拷贝文件夹内容(使用 shutil 模块) #【示例】实现递归的拷贝文件夹内容(使用 shutil 模块)import shutil #音乐文件夹不存在才能用 shutil.copytree(movie/港台,音乐,ignoreshutil.ignore_patterns(*.html,*.htm))【示例】实现将文件夹所有内容压缩(使用 shutil 模块) #【示例】实现将文件夹所有内容压缩(使用 shutil 模块) import shutil import zipfile# 将movie/港台文件夹下所有内容压缩到音乐文件夹下生成周星驰.zip shutil.make_archive(音乐/周星驰,zip,movie/港台)#压缩将指定的多个文件压缩到一个zip文件 zzipfile.ZipFile(a.zip,w) z.write(1.txt) z.write(2.txt) z.close()【示例】实现将压缩包解压缩到指定文件夹(使用 shutil 模块) #【示例】实现将压缩包解压缩到指定文件夹(使用 shutil 模块) import shutil import zipfile #解压缩z2zipfile.ZipFile(a.zip,r) z2.extractall(d:/) #设置解压的地址 z2.close()递归 【示例 3-22】使用递归求 n! #测试递归 def factorial(n):if n1:return 1else:return n*factorial(n-1)afactorial(8) print(a) 【示例】使用递归算法遍历目录下所有文件 #递归打印所有的目录和文件 import osallfiles[]def getAllFiles(path,level):childFilesos.listdir(path)for file in childFiles:filepathos.path.join(path,file)if os.path.isdir(filepath):getAllFiles(filepath,level1)allfiles.append(\t*levelfilepath)getAllFiles(movie,0)for f in reversed(allfiles):print(f)
http://www.pierceye.com/news/714658/

相关文章:

  • 遵义网站建设网站定制wordpress主题多少钱
  • 外贸网站如何做推广是什么意思长沙制作公园仿竹护栏多少钱一米
  • seo网站有优化培训吗小程序商城开发华网天下优秀
  • 无锡品牌网站建设介绍网络营销是不是网络推广
  • 旅游网站建设论文题目商用图片的网站
  • 做网页专题 应该关注哪些网站网页版梦幻西游吸血鬼怎么过
  • gwt 网站开发深圳公司形象墙制作
  • 自己做的网站别人打不开大连网站建设方案维护
  • 卖高仿名牌手表网站两学一做网站飘窗
  • 企业网站备案资料样本购卡网页怎么制作
  • 什么网站能免费做简历ui设计师是什么意思
  • 天津网站推广公司哪家好深圳公司注册流程及资料
  • 家装网站建设哪家好点赣州市南康建设局网站
  • 北京建设网站制作我国外贸网站的建设
  • 自己做网站如何赚钱excel做网站
  • 芯片商城网站建设wordpress批量替换图片路径
  • 网站添加手机站软件 项目管理系统
  • 大理装饰公司做网站网站建设费用:做个网站要多少钱?
  • 简约的网站设计界面百度收录网站左侧图片
  • 对建设网站未来发展的建议教育 网站模板
  • 做篮球网站用的背景图广州黄埔做网站的公司
  • 爱客源seo怎么刷关键词排名
  • 自己做网站网页文件在哪里公司官网定制
  • 网站建设怎么样工作室哪个网站可以免费制作h5
  • 做网站学的是代码吗机器封所有端口 不支持做网站
  • 类似于美团的网站开发两学一做网站专栏怎么设置
  • 天津seo网站管理千川推广官网
  • 技术支持 光速东莞网站建设企业信息免费查询系统
  • 网站设计主流尺寸weui wordpress模板
  • 汕头市网站建设商机互联网站建设