第九章-IO编程

IO是输出输入的意思

在计算机中常用到的数据交换的地方是磁盘, 网络等

输入流是从外面(磁盘, 网络)流进内存

输出流是从内存流到外面(磁盘, 网络)

同步IO是指等待IO完成再继续执行

异步IO是在IO操作的时候CPU继续执行别的工作

同步和异步的区别就在于是否等待IO执行的结果

1 文件的读写

  文件的操作见我

2 StringIO和BytesIO

2.1 StringIO

  通过导入io模块来获得StringIO

  StringIO是在内存中读取str

  通过write()写入内容

  通过getvalue()方法获得的得到的内容str

  同样可以逆向操作, 读内存str, 此时可以使用read()和readline()方法

  具体操作如下

from io import StringIO

str = StringIO()str.write("hello")str.write(" ")str.write("world")print(str.getvalue())str = StringIO(‘Hello!\nHi!\nGoodbye!‘)print(str.read())

2.1 BytesIO

  StringIO操作的只能是str, 如果要操作二进制数据, 就需要使用BytesIO

  同样需要通过导入io模块来获得BytesIO   

  在Python中str类型是Unicode, 想要获得bytes需要使用encode方法会编码

  获得bytes内容用getvalue()

  读取bytes内容用read()

  具体实例如下

from io import BytesIO

f = BytesIO()
f.write(‘中文‘.encode(‘utf-8‘))
print(f.getvalue())
# b‘\xe4\xb8\xad\xe6\x96\x87‘

f = BytesIO(b‘\xe4\xb8\xad\xe6\x96\x87‘)
print(f.read())

3 操作文件和目录

  导入os模块可以实现操作系统的dir, cp等功能

import os

  查看操作系统类型, posix是Linux系列操作系统, nt是win系列系统

os.name

  获取详细系统信息, unama()只是linux系统有

os.uname()

  查看环境变量

os.environ

  要获取某个环境变量的值

os.environ.get(‘PATH‘)

  查看当前目录的绝对路径

os.path.abspath(‘.‘)

  创建目录

os.mkdir(‘/Users/michael/testdir‘)

  删除目录

os.rmdir(‘/Users/michael/testdir‘)

  

    

时间: 2024-10-22 18:03:04

第九章-IO编程的相关文章

C Primer Plus (第五版) 第九章 函数 编程练习

第九章 函数 编程练习 设计函数 min(x,y),返回两个double数值中较小的数值,同时用一个简单的驱动程序测试该函数. #include <stdio.h> double min(double x, double y); int main(void) { double a, b; printf("请输入两个数:\n"); scanf("%lf%lf", &a, &b); printf("两个数中较小的数是:%lf\n&q

Python学习笔记__9章 IO编程

# 这是学习廖雪峰老师python教程的学习笔记 1.概览 IO在计算机中指Input/Output,也就是输入和输出. 由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,所以涉及到数据交换的地方,通常是磁盘.网络等,这些地方就需要IO接口. 数据从内存往外发是Output 数据从外往内存发是Iutput 2.同步IO和异步IO 同步IO:发起IO请求后,等到IO的返回结果,在接着往下执行 异步IO:发起IO请求后,可以去做其他事.IO结果返回后,会通知调用者. 注:本章所讲

第九章 IO流

9 IO流 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式. 流按操作数据分为:字节流和字符流 流按流向分为:输入流和输出流 9.1 IO流常用基类 字节流的抽象类 InputStream,OutputStream 字符流的抽象类 Reader,Writer 9.2 FileWriter和FileReader 9.2.1 FileWriter 该对象一被初始化就必须要明确被操作的文件,而且该文件会被创建到指定目录下.如果该目录已有同名文件,将被覆盖.若传递一个true参数,

Python之旅.第九章.并发编程

进程 #串行: 一个一个的运行 1.什么是程序?什么是进程? 程序说白了就是一堆文件 进程就是一个正在执行的过程/程序,所以说进程是一个抽象的概念.这个概念起源操作系统 2.什么是操作系统 定义:操作系统是位于计算机硬件与应用软件之间,用于协调.管理.控制计算机硬件与软件的资源的一种控制程序 3.操作系统的两大作用: 1.把复杂丑陋的硬件操作都封装成美丽的接口,提供给应用程序使用 2.把进程对硬件的竞争变的有序 4.多道技术(单个CPU在多个程序中切换以实现并发) 多道的产生背景是想要在单个cp

Python之旅.第九章.并发编程。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 15.0px; font: 13.0px "PingFang SC"; color: #000066; background-color: #ffffff } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; line-height: 15.0px; font: 13.0px Courier; color: #000066; background-co

C++ Primer第九章课后编程问题

1. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3V1Z2xlMjAxMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" > 代码: 头文件golf.h代码: const int Len = 40; struct golf { char fullname[Len]; int handicap; }; void setgolf(golf &

C++ Primer第九章课后编程题

1. 代码: 头文件golf.h代码: const int Len = 40; struct golf { char fullname[Len]; int handicap; }; void setgolf(golf & g, const char * name, int hc); int setgolf(golf & g); void handicap(golf & g, int hc); void showgolf(const golf & g); golf.cpp代码

求职宝典 第九章 面向对象编程

在C++中,一个派生类可以从一个基类中派生,也可以从多个基类中派生,前者称为单继承,后者称为多继承. 单继承的定义格式如下: Class <派生类名>:<继承方式> <基类名> { <派生类新定义成员> }: 多继承的定义格式如下: Class <派生类名>:<继承方式1> <基类名1>,<继承方式2><基类名2>,... { <派生类新定义成员> } 其中,<派生类名>是新

Android初级教程理论知识(第九章多媒体编程)

多媒体概念 文字.图片.音频.视频 计算机图片大小的计算 图片大小 = 图片的总像素 * 每个像素占用的大小 单色图:每个像素占用1/8个字节 16色图:每个像素占用1/2个字节 256色图:每个像素占用1个字节 24位图:每个像素占用3个字节 加载大图片到内存 Android系统以ARGB表示每个像素,所以每个像素占用4个字节,很容易内存溢出 对图片进行缩放 获取手机屏幕宽高(分辨率) Display dp = getWindowManager().getDefaultDisplay(); i