Python学习笔记(九)--------输入与输出

一、相关

输入输出(input/output,I/O),读作“eye-oh”,描述的是在计算机上输入输出数据的操作系统、程序或设备。一般的输入输出设备有打印机、硬盘、键盘和鼠标。实际上,有些设备只有输入功能,如键盘和鼠标;有些设备只有输出功能,如打印机;还有些设备具有输入输出2种功能,如硬盘、磁碟和可写性只读光盘(CD-ROM)。

本篇仅描述键盘、磁盘、显示屏之间的输入输出操作。

二、简单的输入输出

1.print:打印到屏幕

说道输入输出,我最先想到的便是print函数了,我们第一次接触编程输出“Hello world”时,都会用到这个函数。这个函数我们比较熟悉,不再做详细描述。

print("My name is Baldwin")
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
My name is Baldwin

Process finished with exit code 0

2.input:从键盘输入

内置函数input()可以从标准输入中读取一行文本数据(默认标准输入是键盘输入)

inputStr = input("Enter your name here:")
print("Your name is :", inputStr)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
Enter your name here:Baldwin
Your name is : Baldwin

Process finished with exit code 0

 input函数的参数可以填入我们的提示词。

3.open(文件操作)

获取File对象

想对文件进行操作,首先我们需要通过open函数获取某个文件对象,然后才能操作该文件,open函数获取对象通式如下

open(filename, mode)

fileName:你需要打开的文件的路径和文件名

mode:打开文件的模式,包括:只读,写入,追加等,不填写模式的话,默认模式为只读。关于mode,请参考以下表格

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

程序输出(写数据到文件)

输出数据到文件,首先要求我们获取文件对象时,应当给予写权限,具体是哪一个权限,可以按照上表查询,以下以“r+”(读写)权限为例,temo.txt文件我们放在了与模组文件同一个文件夹下,所以路径直接写文件名即可,若在其他位置,请修改文件名。

file = open("temp.txt", "r+")  # 已在同级目录下创建temp.txt文件  读写模式获取对象
file.write("Hello World")      # 写入数据

程序输入(从文件读取数据)

同样的,读取数据需要有读权限,file对象有许多种函数,其中可用的也有很多,我们在此以read为例,具体其他函数下面会有详解

file = open("temp.txt", "r+")  # 已在同级目录下创建temp.txt文件
# file.write("Hello World")
fileStr = file.read()
print(fileStr)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
Hello World

Process finished with exit code 0

file函数详解

文件对象函数详解
函数名 函数描述 参数描述
file.read() 读取一定数目的数据, 然后作为字符串或字节对象返回 size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。
file.readline() 从文件中读取单独的一行。换行符为 '\n'。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
file.readlines() file.readlines() 将返回该文件中包含的所有行。 如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割
file.write() 将 string 写入到文件中, 然后返回写入的字符数。
file.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数。
file.seek() 改变文件当前的位置, 可以使用 f.seek(offset, from_what) 函数 wu
file.close() 关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。  

三、pickle 模块

1.相关

pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。

pickle模块只能在python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化,

pickle序列化后的数据,可读性差,人一般无法识别。

参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。

总结:加工数据的,可以用来存取结构化数据。

2.主要函数

dumps(object) :返回一个字符串,它包含一个 pickle 格式的对象;

loads(string) :返回包含在 pickle 字符串中的对象;

dump(object, file) :将对象写到文件,这个文件可以是实际的物理文件,但也可以是任何类似于文件的对象,这个对象具有 write() 方法,可以接受单个的字符串参数;

load(file) :返回包含在 pickle 文件中的对象。

3.实践

import pickle

myStr = "My name is Baldwin"
fileWB = open("temp.txt", "wb")
pickle.dump(myStr, fileWB)       # 将数据存入文件,序列化
fileWB.close()                   # 此处关闭连接,否则下一个连接进不去

fileRB = open("temp.txt", "rb")
getStr = pickle.load(fileRB)    # 读取数据,反序列化
fileRB.close()
print(myStr)
print(getStr)
E:\WorkSpaces\PycharmProjects\PyDemo\venv\Scripts\python.exe E:/WorkSpaces/PycharmProjects/PyDemo/cn/yzstu/__init__.py
My name is Baldwin
My name is Baldwin

Process finished with exit code 0

文件内容

四、总结

输入输出有太多的方式了,今天所说的只是最简单的几种,用于学习基础。

发布了53 篇原创文章 · 获赞 389 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/shouchenchuan5253/article/details/105119368
今日推荐