你要偷偷的学Python,然后惊呆所有人(第三天)

标题无意冒犯,就是觉得这个广告挺好玩的

上面这张思维导图,喜欢的朋友可以带走

好,切入正题

文章目录

前言

“你的如意金箍棒”已到货,请签收

文件读写

计算机编码表

读取文件

第一步:打开文件

绝对路径 and 相对路径 注意点

第二步:读取文件

第三步:关闭文件

写入文件

小练习

我的代码


前言

本系列文默认各位有一定的C或C++基础,因为我是学了点C++的皮毛之后入手的Python。也要感谢大家的支持,前两篇访问、收藏、点赞、评论量都“居高临下”,感谢感谢,还有的朋友迫不及待等第三篇,真的很感动,虽然我写得慢,但是晚上少打两把游戏也是可以提高更新速度的啦。

本系列文默认各位会百度,本系列也会着重培养各位的自主动手能力,毕竟我不可能把所有知识点都给你讲到,所以自己解决需求的能力就尤为重要,所以我在文中埋得坑请不要把它们看成坑,那是我留给你们的锻炼机会,请各显神通,自行解决。123

如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python裙号930900780,领取python学习资料,会节约很多时间,减少很多遇到的难题。

“你的如意金箍棒”已到货,请签收

今天我们要讲一下Python里面比较重要的一环,也就是Python能够异军突起的非常重要的一个原因。

大家有没有想过,在这个编程语言满天飞的时代,有老牌玩家C/C++,前端PHP,H5,新秀Java,数学界有MATLAB和R,为什么Python能够脱颖而出呢?

对,因为Python是个万金油般的存在!它可以去调用各种各样的包来为它工作,包里面有各种的函数,比方说我现在要用Python来处理一大堆的Excel表格,那我是不是要自己写表格处理函数呢?并不是的,自己写太麻烦,为什么不站在巨人的肩膀上呢?有个包叫‘csv’的,专门用来干这个事情,那我把它喊过来不就好了嘛。

对,就是模块调用,学完之后,就可以用Python去批量处理表格啊、去做简单的人脸识别啊、去做些小项目。

怎么样,是不是特别激动!!!

好,别急,慢慢来。这里呢,需要大家有一款称手的编译器了,可以是VS(支持py编程的),也可以是pycharm,或者其他的。

我用的是pycharm,VS开起来太大了。

下载pycharm之前,要先下载一个Python,现在是北京时间:2020-10-23,最新版是3.9.0。

这俩东西在各自官网上都有推荐最新版,安装也很方便,基本就是一路next,不过建议不要安装在C盘。

大家动起来!!!

文件读写

函数和类讲完,自然也就是文件读写流了。

在学完数据库的一段时间里,我一度认为文件读写没啥用了,这年头谁还用文件呐,后来发现我错了。

计算机编码表

我们先来看一张计算机编码表:

编码表适用性特点ASCII码英文大小写字符,不支持中文美国人的发明,占用空间小GB2312码、GBK码支持了中文GBK码是GB2312的升级Unicode码支持国际语言占用空间大,适用性强。UTF- 8码支持国际语言转化,占用空间小。ASCII码被UTF- -8码包含

文件读写,是Python代码调用电脑文件的主要功能,能被用于读取和写入文本记录、音频片段、Excel文档、保存邮件以及任何保存在电脑上的东西。

我用C++做过文件读写,再Linux上,在Windows上,也用QT写过有界面的文件读写,现在来试试Python的。

读取文件

具体流程如下:

(以后就换图片风格啦,我用图片也是为了大家看的更直观嘛)

第一步:打开文件

首先在创建一个测试文件,比如说放在桌面上的test.txt文件,里面随便写上点啥,打开你的编译器,新建一个project,开始编程。

file1 = open(r'D:\Users\asus\Desktop\test.txt','r',encoding='utf-8')1

file1这个变量是存放读取的文件数据的,以便对文件进行下一步的操作。

(可以看出来有三个参数吧)

open(path,mode,encoding)1

参数释义:

第一个参数是文件的保存地址,一定要写清楚,否则计算机找不到

这里有两种方法,一种是写文件的绝对路径,一种是文件的相对路径。我上面那种写法就是绝对路径,如果要用相对路径的话嘛,也可以把文件拖动到你的项目文件下,然后:看图吧

对吧,这几种方式都是可以的,不过如果新手的话建议使用绝对路径,绝对路径用熟了再说。

怎么看绝对路径?右击文件->属性

绝对路径 and 相对路径 注意点

绝对路径就是最完整的路径,相对路径指的就是【相对于当前文件夹】的路径,也就是你编写的这个py文件所放的文件夹路径!

Windows系统里,常用\来表示绝对路径,/来表示相对路径

别忘了\在Python中是转义字符,所以时常会有冲突。为了避坑,Windows的绝对路径通常要稍作处理,写成以下两种格式

open('D:\\Users\\asus\\Desktop\\test.txt')#将'\'替换成'\\'open(r'D:\Users\asus\Desktop\test.txt')#在路径前加上字母r12345

第二个参数是权限位,主要有这么一些:

r(read,读)r只读,指针在开头,文件不存在则报错rb二进制只读,其余同左r+读写,其余同左rb+二进制读写,其余同左w(write,写)w只写,文件不存在则新建,存在则覆盖wb二进制只写,其余同左w+读写,其余同左wb+二进制读写,其余同左a(append,追加)a追加,文件存在指针放在末尾,文件不存在则新建ab二进制追加,其余同左a+追加且可读,其余同左ab+二进制追加且可读,其余同左

第三个参数encoding=‘utf-8’,表示的是返回的数据采用何种编码,一般采用utf-8或者gbk。

第二步:读取文件

打开文件之后,就可以用read()函数进行读取的操作了,这个上边其实已经有体现了,read()函数啊。

但是,其实并没有这么简单,如果我想一行一行读呢?如果我想一个单词一个单词读呢?怎么办?

这里,我们需要使用一个新函数readlines(),顾名思义,一行一行读。

认真看啊:

信息量不大啊,看完我们来进行下一步切割。

这里虽然把每行都分开了,但是我们是要把每个数字都分开是吧,显然现在我们还不能满意。

那就用字符串切割函数吧:split()

split()是把字符串分割的,而还有一个join()函数,是把字符串合并的。

a=['c','a','t']b=''print(b.join(a))c='-'print(c.join(a))12345

运行结果:

catc-a-t12

第三步:关闭文件

关闭文件,使用的是close()函数。

file1.close()  1

为啥要关闭文件呢?原因有两个:1.计算机能够打开的文件数量是有限制的,open()过多而不close()的话,就不能再打开文件了。2.能保证写入的内容已经在文件里被保存好了。

文件关闭之后就不能再对这个文件进行读写了。如果还需要读写这个文件的话,就要再次 open() 打开这个文件。

这里再顺便补充一个用法,为了避免打开文件后忘记关闭,占用资源或当不能确定关闭文件的恰当时机的时候,我们可以用到关键字with,之前的例子可以写成这样:

# 使用with关键字的写法withopen('test.txt','r')asfile1:#with open('文件地址','读写模式') as 变量名:#格式:冒号不能丢file1.read()#格式:对文件的操作要缩进#格式:无需用close()关闭1234567

写入文件

打开文件嘛,我就不多说啦,把‘r’改成‘w’,具体看上面那个表格。

你去写,写完之后你就会惊喜的发现,原文件内容被洗掉重写了。。

如果不想出现这种情况的话,可以将‘w’改成‘a’

那么 b 有什么用呢,那个二进制的。

因为有很多文件在计算机中的存储,它是采用二进制的,并不是肉眼能看得懂的文字信息。

比方说音频,比方说图片等等。这时候就需要使用 ‘b’ 权限的加持了。

小练习

学了这个文件读写处理啊,我们来玩点小游戏吧。

这里有一组数据:

第一列,42,25,65,14,78第二列,55,75,23,74,24第三列,58,45,31,15,65第四列,16,86,43,21,751234

然后把每列数据求和,写在文件下边:

第一列,XX第二列,XX···123

放一张图隔开,再放上我的实现

我的代码

file= open(r'D:\Users\asus\Desktop\test.txt','r',encoding='GB2312')#with open(r'D:\Users\asus\Desktop\test.txt','r',encoding='GBK') as file1:file_lines = file.readlines()file.close()final_scores = []foriinfile_lines:    data = i.strip().split(',')    sum =0forscoreindata[1:]:        sum = sum + int(score)    result = data[0]+str(sum)+'\n'print(i)    final_scores.append(result)#这里表示文件已经被关闭了writer = open(r'D:\Users\asus\Desktop\test.txt','a',encoding='GBK')writer.write('\n')writer.writelines(final_scores)writer.close()123456789101112131415161718192021

这里要注意一点就是你的文本文件不能有’空行’,这个空行往往肉眼看不见。。。。

最后多说一句,小编这里整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以进q裙930900780领取。

本文章素材来源于网络,如有侵权请联系删除。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352