Python-进阶-IO
10. 标准IO
10.1 读取键盘输入
Python提供了 input()
函数从标准输入中读入一行文本,默认的标准输入是键盘
1 | ss = input("输入提示:") |
10.2 标准输出
- 表达式语句
- print() 函数
10.2.1 表达式转化成字符串输出
str()
:返回一个用户易读的表达式,去掉字符串标志''
或""
repr()
:产生一个解释器易读的表达式,保留字符串标志''
或""
1 | s = 'Hello world' |
10.2.2 字符串格式化
rjust(整数)
:将字符串靠右,并在左边填充空格
ljust(整数)
:将字符串靠左,并在右边填充空格
center(整数)
:将字符串居中,并在两边填充空格
1 | for x in range(1, 11): |
zfill(整数)
:在数字左边添加0
1 | '12'.zfill(5) #'00012' |
10.2.3 str.format()
str
中的{}
会被format()
中的参数替换
在 {}
中的数字用于指向对象在 format()
中的位置
- 如
{0}
指向format(a,b,c)
中的a
1 | print('{}网址: "{}!"'.format('菜鸟教程', 'www.runoob.com')) |
format(name1=value1)
中还可指定关键字参数,与 {name1}
同名
- 关键字参数要在位置参数之后
1 | '{name}网址: {0}'.format('www.runoob.com',name='菜鸟教程') |
!a
表示使用 ascii()
,!s
表示使用 str()
,!r
表示使用 repr()
用于在格式化某个值之前对其进行转换
在 :
后 传入一个整数,可以保证该域的宽度,用于打印表格
1 | table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} |
.format()
中可以传入一个字典,可以使用 []
访问键值
1 | table = {'Google': 1, 'Runoob': 2, 'Taobao': 3} |
11. 文件IO
标准输出文件可以用
sys.stdout
引用
I/O(Input/Ouput)
文件操作步骤
- 打开文件
- 对文件进行操作
- 保存
- 关闭文件
11.1 打开文件
使用
open()
函数打开文件,返回一个文件的对象
fileObj.close()
方法关闭文件
1 | open(file, mode='r',buffering = -1,encoding=None,errors=None,newline=None,closefd=True,opener=None) |
file:要打开的文件路径
需要注意相对路径与绝对路径,在 Windows 下,可以用
/
代替\
,或者\\
代替\
,或者使用原始字符串r"str"
使用
..
返回上一级目录如果目标文件距离当前文件较远,使用绝对路径
1 | try: |
11.2 文件操作
1 | # with ... as |
11.3 文件读取
read()
方法用来读取文件的内容,会将内容保存为一个字符串返回
默认为纯文本格式打开,编码为 None
1 | try: |
11.3.1 文件读取格式
- 纯文本格式,默认
utf-8
编写文本文件 - 二进制文件(图片,mp3,ppt)
11.3.2 读取中文文件
指定文件编码为
utf-8
1 | try: |
11.3.3 读取大文件
指定 size=-1
- 指定要读字符的数量,默认值为
-1
,读取文件中所有字符 read()
会记录上次读取位置,若读取到文件末尾,则返回空串""
1 | try: |
11.3.4 读取一行
readline()
读取一行内容
readline()
自动换行
readlines()
一次读取到的内容返回,封装到一个列表中返回
1 | try: |
11.3.5 直接遍历文件对象
1 | fileObj = open(fileName) |
11.4 文件写入
write()
:使用 open()
打开文件,需要指定要做的操作
r
:表示只读w
:表示可写文件存在,则覆盖原文件
文件不存在,则创建文件
a
:表示追加内容文件存在,则向文件追加内容
文件不存在,则创建文件,新增内容
+
:表示增加权限r+
:即可读又可写,文件不存在则报错w+
a+
x
:表示创建文件不存在,则创建
存在,则报错
1 | try: |
11.5 二进制文件
open()
参数
p
:读取文本文件b
:以字节形式读取二进制文件
1 | # 读取filename中的文件,写入新对象中 |
11.6 seek()&tell()
fileObj.tell()
:查看当前读取位置fileObj.seek()
:切换读取位置- arc1,切换的位置
- arc2,计算位置方式
- 0:从头计算,默认
- 1:从当前位置计算
- 2:从最后位置开始计算
11.7 其他操作
需要引入
os
1 | import os |