美文网首页ITS·黑客
python之IO同步编程Part1

python之IO同步编程Part1

作者: JEZAU | 来源:发表于2017-05-05 23:11 被阅读25次

元类看不进去
然后 既然我在看路径的时候接触了os内库
那就让我来看看IO编程吧 比较好理解..

Python内置的os模块可以直接调用操作系统提供的接口函数
所以我觉得io模块就可以看成是可以直接调用内存提供的接口函数

读写之类的具体操作方法我在内置函数篇下面已经写过啦,所以这里只补充之前不知道哒~
1.使用with语句操作文件IO是个好习惯。
with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。python with的相关知识
然而我只看了我这里用到的一种用法。

值得注意的是:
我在写入文件的时候,是重新开始写而不是在后面添加,且会返回字符数
但是为什么调用stringIO的时候 就可以输出一整串呢?
代码如下:

>>> with open('Desktop/python/test.py','r') as  f:
...     f.read()
... 
"#!/usr/local/Cellar/python3/3.6.1/bin/python3\n\ndef m(x):\n    print('1')\n    return 3*x\n    print('6')\n\na = m(10) #输出1\nprint('分割')\nprint(a) #输出30\nprint('分割')\nm(10)  #输出1\nprint('分割')\nprint(m(10)) #输出 1 30\n\n"
>>> with open('Desktop/python/test.py','w') as  f:
...     f.write("测试")
... 
2```
然后我的文件里就只有测试两个字啦

from io import StringIO
f = StringIO()
f.write('Hello')
5
f.write(' ')
1
f.write('world')
5
print(f.getvalue())
Hello world```

然后我就这样测试了一下

>>> with open('Desktop/python/test.py','w') as  f:
...     f.write("测试")
...     f.write('再一次测试')
... 
2
5
>>> f.write('test')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: I/O operation on closed file.
>>>```
2.我的理解猜想: 
stringio在import的时候被打开,可以多次传入数据,在被读取以后就重新变成了空的,相当于我们把内存里的东西取出来了,就空啦。
文件的w状态相当于创建了一个内存,往内存中输入数据。结束w的时候把内存中的数据全部输入文件然后两者均关闭,且文件中的原数据都会没掉,因为输入时会整个代替掉。读取的时候也是如此,反一反,把文件中的数据弄到内存中,调出来读一遍以后就没掉啦。
尝试一下,果然,只要不close,readline()、read(size)就会继续往后面读,否则就从头开始。

4.readlines中的strip说是去掉换行符,但以前学的是去掉空格啊 于是我做了以下尝试

line = ['123','222','231']
for a in line:
... print(a)
...
123
222
231
line = ['123\n','222\n','231\n']
for a in line:
... print(a)
...
123

222

231

line = ['123\n','222\n','231\n']
for a in line:
... print(a.strip())
...
123
222
231

所以strip()不仅可以去掉空格,还可以去掉换行符,制表符。

相关文章

  • python之IO同步编程Part1

    元类看不进去然后 既然我在看路径的时候接触了os内库那就让我来看看IO编程吧 比较好理解.. Python内置的o...

  • python之IO同步编程Part2

    1.获取环境变量中的x的值,如果不存在就返回y shutil.copyfile(src, dst)复制文件内容(不...

  • 网络编程4-NIO编程

    Unblocking IO,同步非阻塞的编程方式

  • python文件

    IO在计算机编程中指的是输入和输出。IO编程中,Stream(流)是一个很重要的概念。IO有同步IO和异步IO两种...

  • Python学习之IO编程

    Python学习目录 在Mac下使用Python3 Python学习之数据类型 Python学习之函数 Pytho...

  • BIO编程

    Blocking IO: 同步阻塞的编程方式。BIO 编程方式通常是在JDK1.4 版本之前常用的编程方式。编程实...

  • Python IO编程

    1. 打开文件 f = open(filename,mode) 'r','r+'模式下,文件必须存在,否则报错。而...

  • Python IO编程

    一、文件读写 读 写 二、StringIO和BytestIO StringIO和BytesIO是在内存中操作str...

  • Python IO编程

    文件读写 读文件由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了...

  • Python:IO编程

    同步IO与异步IO:由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,就存在速度严重不匹配的问题。举个...

网友评论

    本文标题:python之IO同步编程Part1

    本文链接:https://www.haomeiwen.com/subject/myastxtx.html