胖蔡说技术
随便扯扯

Python中的IO操作

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



赞(0) 打赏
转载请附上原文出处链接:胖蔡说技术 » Python中的IO操作
分享到: 更多 (0)

请小编喝杯咖啡~

支付宝扫一扫打赏

微信扫一扫打赏