python 常见IO都有哪些?这些基础方法是否也是你常用到的呢

所谓的IO,其实就是指Input/Output ,也就是输入和输出 。在计算机常见的IO操作有控制台IO、硬盘IO、内存IO以及网络IO 。由于网络IO涉及知识比较广,故不在本文介绍 。

python 常见IO都有哪些?这些基础方法是否也是你常用到的呢

1.控制台IO

控制台IO是我们最常见也最常用的操作,基本只要你学习python,就离不开控制台的IO操作。这两个函数也非常简单,具体操作如下:

print("hello python")
hello python

text = input("请输入值:")
请输入值:>? 'hello python'

print('你输入的内容是:'+text)
'你输入的内容是:hello python'

2.文件IO

open方法

在python中,文件的读写是通过一个open方法来完成的 。它的具体用法如下:

作用 :用于打开一个文件,并返回该文件的对象 。

具体语法:

f = open(文件名,模式,文件编码)  #具体如下
f = open(filename,mode,encoding)

参数说明:

在上面我们可以看到,使用open方法进行打开文件后,返回一个文件对象f,这个f又支持很多函数,具体如下:

方法

说明

解释

f.read([size])

从文件中读取指定的字节数,若不传则读取所有

读取指定数量的字节数,可以使用这种方式。

f.readline()

读取整行,包括‘ ’字符

若文件内容很大,建议使用这种方式

f.readlines()

读取所有行并以列表形式返回

文件内容少,可以使用这种方式,可以循环输出

f.write(str)

将字符串写入文件,返回的是写入字符串的长度


f.writelines(seq)

向文件写入一个序列字符串列表,如果需要换行则要加入每行的换行符

这种方式可以将序列中的元素作为内容写入文件 。

f.seek(offset[,whence])

设置文件当前位置

用于移动文件读取指针到指定位置。

f.tell()

返回文件当前位置

也就是返回指针当前位置。

f.next()

返回文件下一行

文件使用迭代器时会使用到,在循环中,next()在每次循环中调用,返回文件的下一行

f.fulsh()

将缓存区的数据直接写入文件。


f.close()

关闭文件

当操作完文件,对文件要进行关闭操作 。

假如我们有以下文件,与python执行文件在同一文件夹中。

a.txt

Python is designed to be very readable.
Compared with other languages, English keywords are often used,
and some punctuation marks in other languages
have a more distinctive grammatical structure than other languages.
# 1. read()方法读取
f = open('a.txt','r')
content = f.read()
print(content)
  
#输出:
Python is designed to be very readable.
Compared with other languages, English keywords are often used,
and some punctuation marks in other languages
have a more distinctive grammatical structure than other languages.
# 2. readline()方法读取
f = open('a.txt','r')
while True:
    # 每次只读取一行
    line = f.readline()
    # 判断是否读取到内容
    if not line:
        break
        print(line,end="")
f.close()

# 输出 :同样是a.txt中的内容
#说明 :这样读取方式特别适合大的文本文件读取 ,不需要把所有内容一次加载到内存中,避免过度占用内存
# 3.readlines()方法读取
f = open('a.txt','r')
all_lines = f.readlines()
print(all_lines)            #这里返回的是列表
for x in all_lines:
    print(x,end=" ")
f.close()

#输出 : 同样是a.txt中的内容
# 4.使用write()方法进行写内容
f = open('b.txt','w')
f.write("hello python")
f.close()

#输出:在b.txt中会写入一行hello python的字符串
# 4.使用write()方法进行写内容
f = open('b.txt','r')
f.write("hello java")
f.close()

#输出:在b.txt中的最后一行会添加一行hello java的字符串

3.内存数据IO

很多时候,数据的读写是来自于内存 。这个时候我们就可以使用StringIO .

StringIO

这个类返回的对象也具有以上方法,如read,readline,readlines等 ,只是这里又多了一个getvalue()方法 。

getvalue : 用于返回对象的所有数据 ,具体代码:

from io import  StringIO

f = StringIO()
#写入内存
f.write('hello python')

# 内存中获取数据:getvalue() 
print(f.getvalue())

f.close()

#输出 :hello python

以下使用readline进行读取。

from io import  StringIO

f = StringIO()
f.write("hello python")
f.write("hello java")
f.seek(0)

# 通过readline读取
lines = f.readline()
print(lines)
# 通过getvalue()
print(f.getvalue())
f.close()

#输出 : 通过readline和getvalue获取的内容是一样的。
hello pythonhello java
hello pythonhello java

从上面可以看出 ,内存读写和文件读写,主要有以下区别:

BytesIO

使用BytesIO进行读写,主要是可以实现二进制数据的读写 ;而StringIO只能操作字符串 。

这就像文件读写中读写模式 ,如果想进行二进制模式读写,你就得设置mode='b'

除这一点区别外,BytesIO和StringIO的方法完全一样 。

from io import BytesIO

f = BytesIO()

# 因为是二进制读写,所以必须设置编码
f.write('hello python'.encode('utf-8'))

print(f.getvalue())

f.close()

#输出 :
b'hello python'

4.文件目录操作

使用os模块对文件或文件夹进行操作,如新建删除等操作 。

python 常见IO都有哪些?这些基础方法是否也是你常用到的呢

python 常见IO都有哪些?这些基础方法是否也是你常用到的呢

python 常见IO都有哪些?这些基础方法是否也是你常用到的呢

展开阅读全文

页面更新:2024-04-15

标签:方法   当前位置   控制台   字符串   文件名   路径   对象   内存   常见   模式   操作   方式   文件   基础   目录

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top