IO操作指的是InputStream/OutPutStream 流式操作,属于计算机编程语言的基础操作。本文主要介绍Python 中的基础IO操作方式,并通过代码来了解如何去使用IO操作。
输出流
python中使用print()函数实现python的标准屏幕输出操作。其格式如下:
print(var)
// 示例
a = 100 #变量a,值为100
b = 5 #变量b,值为5
print(9) #输出数字9
print(a) #输出变量a的值100
print(a*b) #输出a*b的结果500
print("python输出信息") #输出"python输出信息"
输入流
Python提供多种方式实现数据的输入。接下来我们来了解下Python输入方式:
1、input()输入
使用input()函数可以实现交互式用户输入操作,input传入字符串作为shell提示信息提供输入显示,用户输入后的信息作为字符串形式存储(python3.x整合raw_input()和input(),去除raw_input(),只保留input()函数,接受任意输入,默认所有输入为文字串处理,返回文字串类型)。若格式非字符串格式,可以通过类型转换格式进行转换,示例代码如下所示:
from flask import Flask
app = Flask(__name__) #创建一个Flask示例
@app.route('/hello') #通过route创建路由
def helloWorld():
return "Hello world !"
if __name__ == '__main__':
# 通过run启动一个server服务
host = input('请输入启动服务的地址:')
if host:
port = input('请输入需要监听的接口:')
p = int(port)
if p:
app.run(host,p)
else:
print('监听端口不可为空~')
else:
print('启动服务地址不能为空~')
交互窗口操作显示如下:
(venv) F:\projects\github\pythonNotes>python flask/hello.py
请输入启动服务的地址:0.0.0.0
请输入需要监听的接口:7000
* Serving Flask app 'hello'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:7000
* Running on http://192.168.1.14:7000
Press CTRL+C to quit
2、raw_input()输入
标准输入读取一行,并返回一个字符串,raw_input的使用方式基本和python3.x中的input()方式一致,不重复做介绍。
文件操作
文件操作一向都是程序开发的基础,如下介绍如何使用python中的文件对象,并通过API实现文件对象的基础操作功能。
文件使用流程
1、需要创建一个文件对象
# 创建文件对象
f = open(file_name,access_mode,buffering)
file_name
:访问文件地址access_mode
:访问权限设置.默认为只读(r)buffering
:寄存设置
2、文件访问模式
r
:只读,默认模式rb
:二进制格式打开一个文件只读r+
:读写模式rb+
:二进制读写模式w
:写模式,若已经存在则覆盖,不存在,创建新文件wb
:二进制写入模式,若已经存在则覆盖,不存在,创建新文件w+
:读写模式.若已经存在则覆盖,不存在,创建新文件wb+
:二进制读写.若已经存在则覆盖,不存在,创建新文件a
:追加模式,如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件进行写入。ab
:二进制追加模式,如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件进行写入。a+
:读写模式追加,如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件进行写入。ab+
:二进制读写追加模式,如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件进行写入。
3、File文件的基础属性
file.closed
是否已经关闭文件,true
已经关闭,false
未关闭.file.mode
file
的访问模式-
file.name
文件名称 file.softspace
如果用print
输出后,必须跟一个空格符,则返回false
。否则返回true
常见API
- 写操作:
write()
方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python
字符串可以是二进制数据,而不是仅仅是文字。write()
方法不会在字符串的结尾添加换行符('\n')
- 读操作:
read()
操作,可以通过read()
读取所有的内容,也可以通过file.read(length)
指定每次读取的长度,读取后指针后移,readline()
操作,按行读取 - 文件当前位置获取:
file.tell()
获取文件的指针指向的位置,返回数字 - 文件关闭:
file.close()
文件关闭操作 - 文件指针位置:
file.seek(0)
重定位到文件开头 - 文件重命名:
os.rename(file1,file2)
- 文件删除:
os.remove(file_name)
- 获取当前工作目录:
os.getcwd()
- 更改当前目录名称:
os.chdir("newdir")
- 删除目录:
os.rmdir('dirname')
代码示例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#str = input("请输入:");
#print "你输入的内容是: ", str
## file operation
file1= open('./test.txt','wb+')
# write() function.
content = "https://www.enjoytoday.cn\n"
file1.write(content)
file1.write("add any")
file1.close()
file1= open('./test.txt','r+')
getString= file1.read(10)
file1.seek(0) # 重定位到文件开头
print "get String is:",getString+file1.read(10)
##rename
import os
##print "current path is:",os.path.realpath(file1)
os.rename(file1.name,'./tt.txt')
# file delete
#os.remove('./tt.txt')
#mkdir()
os.mkdir('test') #创建一个test文件夹
os.chdir('newTest') # 修改当前目录为newTest
os.getcwd() # 获取当前工作目录
os.rmdir('test') # 删除test目录
print "file close operation:",file1.close()
print "文件名: ", file1.name
print "是否已关闭 : ", file1.closed
print "访问模式 : ", file1.mode
print "末尾是否强制加空格 : ", file1.softspace