资讯专栏INFORMATION COLUMN

小李飞刀:醉卧沙场君莫笑,python你还是等等我

Hydrogen / 3275人阅读

摘要:前面的一些碎碎念两天的耽搁,思考了下,虽然需要全面基础的学习,但是重点还是应该放在实战上。更简洁的版本是如果文件很小,一次性读取最方便如果不能确定文件大小,反复调用比较保险如果是配置文件,调用最方便。

前面的一些碎碎念

两天的耽搁,思考了下,虽然需要全面基础的学习,但是重点还是应该放在实战上。
所以后续要速速的推倒这个教程了,用一些数据来实行一些分析:)

认真学习的分割线

打打打打鸡血!!!
喝了一点点梅子酒,让我的创造力更加丰丰丰丰富!

IO编程 文件读写 读读读

当我想读文件的时候,我可以做下面的动作。

偷偷的先open()个文件,记得传入文件名和标志符号

然后再小小的read()一下

最后记得close()

f = open("/Users/michael/test.txt", "r")
f.read()
f.close()

当文件不存在的时候是会报错的喔,所以我们可以用try...finally来实现准确的关闭文件。

try:
    f = open("/path/to/file", "r")
    print(f.read())
finally:
    if f:
        f.close()

更简洁的版本是

with open("/path/to/file", "r") as f:
    print(f.read())
如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便。

当读入的文件为二进制文件或图片等其他,用rb模式打开文件即可。
当读入的文件不是UTF-8编码的时候,要传入encoding参数。

写写写

当我想写文件的时候,我在open()的时候把标志符改为w

f = open("/Users/michael/test.txt", "w")
f.write("hello world")
f.close()

可以传入wb来写二进制文件。
写特定编码的文件的时候,传入encoding参数。
为了不然后面写入的文件覆盖前面的,用a(append)模式写入即可,会追加到文件末尾。

StringIO和BytesIO StringIO

StringIO顾名思义就是在内存中读写str。
要把str写入StringIO,首先要先创建一个StringIO,然后写入~

getvalue来获取写入后的str。
如果想读取StringIO,也可以用str初始化一个StringIO,用readline()读取。

BytesIO

这位朋友是用来操作二进制文件的,在内存中读写bytes。

>>> from io import BytesIO
>>> f = BytesIO()
>>> f.write("中文".encode("utf-8"))
6
>>> print(f.getvalue())
b"xe4xb8xadxe6x96x87"

然后同StringIO一样,也可以用一个bytes初始化BytesIO,然后像文件一样读取。

-----写于2019-01-09

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42995.html

相关文章

  • 小李飞刀python慢点飞,的脑子还在后面追

    摘要:默认参数设置默认参数时,有几点要注意一是必选参数在前,默认参数在后,否则的解释器会报错二是如何设置默认参数。注意此处,获得的其实是的拷贝,函数内对的改变不会影响到。使用递归函数需要注意防止栈溢出。 总是在最前面的叨逼叨 最近总是在想成长这两个很常常被提起的事情,这对于一个已经25岁的半中年而言,已经是一个不太能高频提起的词。但是,最近一些事情吧,总让我觉得我的生长期似乎比正常人来的晚了...

    kevin 评论0 收藏0
  • 小李飞刀python来做题啦

    摘要:好久不见最近都在忙年底的年会,还沉迷于学习统计学,教程还停留在基础语法。做题做题无论如何,数据结构还是很重要的,所以准备每天刷的题目啦。第一题移除元素给定一个数组和一个值,你需要原地移除所有数值等于的元素,返回移除后数组的新长度。 好久不见 最近都在忙年底的年会,还沉迷于学习统计学,python教程还停留在基础语法。但是仔细规划了下,还是要好好的瞄准目标前行。所以准备呢,实战走起来。 ...

    nevermind 评论0 收藏0
  • 小李飞刀python请与一起愉快的玩耍吧!

    摘要:属性,可以函数的名字在代码运行期间动态增加功能的方式,称之为装饰器。本质上,就是一个返回函数的高阶函数。比如,定义一个能打印日志的。接受函数作为参数,要放置在函数定义处。一个完整的的代码如下记录的是传入的的值,位置在嵌套内或者带参数的如下。 又是一段叨叨 如果总是担心能不能做到的话,那就干脆不要做了。想做的事情还是一往无前的好,什么都不想,就努力冲冲冲吧! 装饰器 因为函数是一个对象。...

    FuisonDesign 评论0 收藏0
  • 小李飞刀:ppppppython是需要好好学习的

    摘要:直接抄其中一份的结论吧各地区招聘公司数量和平均待遇。可以看出不论是招聘公司的数据还是平均待遇水平主要都是北上广深杭州占优势。但事实证明,总是要有一些代价的。要学会看报错信息。函数定义结束后需要按两次回车重新回到提示符下。 又是写在前面的乱七八糟 持续学习的第三天了,持续学习是一个不容易培养的好习惯,但是坚持就是胜利嘛~昨天因为一点点事情,所以没能学习很长时间,今天要补回来。周末要搬家,...

    Simon 评论0 收藏0
  • 小李飞刀Python又来啦,例无虚发~

    摘要:一点点小刀刀晚上收到了某招聘软件的的消息,心里慌的不行。所以在上面的代码中,我们可以考虑把改为来更好的看出继承关系。定义方法,在被用于循环时返回迭代对象,循环会不断的调用方法拿到下一个值,直到终止。 一点点小刀刀 晚上收到了某招聘软件的HR的消息,心里慌的不行。因为很想换岗位了,可是当机会来的时候,我却只能表示能力不行。所以要速速的加油了!!! 开始学习的分割 日常一点点小鸡血!请不要...

    ACb0y 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<