亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 文件 I/O:掌握输入输出操作

本章涵盖 Python 中所有基本的 I/O 函数。更多函数请参考 Python 标准文档。

屏幕输出

最简单的输出方式是使用 print 语句,可传入零个或多个用逗号分隔的表达式。该函数将表达式转为字符串并写入标准输出:

#!/usr/bin/python
print("Python is really a great language,", "isn't it?")

输出结果:

Python is really a great language, isn't it?

键盘输入

Python 提供两个内置函数从标准输入(默认为键盘)读取一行文本:

raw_input 函数

raw_input([prompt]) 从标准输入读取一行并返回字符串(去除尾部换行符)。

#!/usr/bin/python
str = raw_input("Enter your input: ")
print("Received input is : ", str)

输入 "Hello Python!" 时输出:

Enter your input: Hello Python
Received input is : Hello Python

input 函数

input([prompt]) 类似 raw_input,但假设输入是合法的 Python 表达式,并返回计算结果。

#!/usr/bin/python
str = input("Enter your input: ")
print("Received input is : ", str)

输入 [x*5 for x in range(2,10,2)] 时输出:

Enter your input: [x*5 for x in range(2,10,2)]
Received input is : [10, 20, 30, 40]

文件的打开与关闭

到目前为止,你一直在读写标准输入输出。现在我们将学习如何操作实际数据文件。

Python 默认提供操作文件所需的基本函数和方法,大部分文件操作通过 文件对象 完成。

open 函数

读写文件前,必须使用内置 open() 函数打开文件,该函数创建一个 文件对象,用于调用相关方法。

语法

file_object = open(file_name [, access_mode][, buffering])

参数说明:

  • file_name:要访问的文件名字符串。
  • access_mode:打开模式(读、写、追加等),默认为只读 (r)。
  • buffering:缓冲设置。0 无缓冲,1 行缓冲,>1 指定缓冲区大小,负值使用系统默认。

文件打开模式一览:

序号模式及说明
1r:只读,指针置于开头(默认)。
2rb:二进制只读,指针置于开头。
3r+:读写,指针置于开头。
4rb+:二进制读写,指针置于开头。
5w:只写,覆盖存在文件或创建新文件。
6wb:二进制只写,覆盖或创建。
7w+:读写,覆盖或创建。
8wb+:二进制读写,覆盖或创建。
9a:追加,指针置于末尾,不存在则创建。
10ab:二进制追加,指针置于末尾。
11a+:追加读写,指针置于末尾。
12ab+:二进制追加读写。

文件对象属性

打开文件后,可通过文件对象获取相关信息:

序号属性及说明
1file.closed:文件是否关闭。
2file.mode:打开模式。
3file.name:文件名。
4file.softspace:print 是否需显式空格。

示例

#!/usr/bin/python
fo = open("foo.txt", "wb")
print("Name of the file: ", fo.name)
print("Closed or not : ", fo.closed)
print("Opening mode : ", fo.mode)
print("Softspace flag : ", fo.softspace)

输出:

Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Softspace flag : 0

close() 方法

close() 刷新未写入信息并关闭文件,之后不可再写入。Python 在文件对象被重新赋值时自动关闭,但建议显式调用 close()。

语法

fileObject.close()

示例

#!/usr/bin/python
fo = open("foo.txt", "wb")
print("Name of the file: ", fo.name)
fo.close()

文件读写

文件对象提供 read() 和 write() 方法简化读写操作。

write() 方法

向打开的文件写入任意字符串(含二进制数据),不自动添加换行符。

语法

fileObject.write(string)

示例

#!/usr/bin/python
fo = open("foo.txt", "wb")
fo.write("Python is a great language.\nYeah its great!!\n")
fo.close()

打开 foo.txt 可见内容:

Python is a great language.
Yeah its great!!

read() 方法

从打开文件读取字符串(含二进制数据)。

语法

fileObject.read([count])

count 为读取字节数,省略则读至文件末尾。

示例

#!/usr/bin/python
fo = open("foo.txt", "r+")
str = fo.read(10)
print("Read String is : ", str)
fo.close()

输出:

Read String is : Python is

文件定位

tell() 返回当前文件位置(距开头字节数)。seek(offset[, from]) 移动文件指针:offset 为移动字节数,from 为参考位置(0=开头,1=当前,2=末尾)。

示例

#!/usr/bin/python
fo = open("foo.txt", "r+")
str = fo.read(10)
print("Read String is : ", str)
position = fo.tell()
print("Current file position : ", position)
fo.seek(0, 0)
str = fo.read(10)
print("Again read String is : ", str)
fo.close()

输出:

Read String is : Python is
Current file position : 10
Again read String is : Python is

文件重命名与删除

os 模块提供重命名和删除文件的方法,使用前需 import os。

rename() 方法

重命名文件,参数为原文件名和新文件名。

os.rename(current_file_name, new_file_name)

示例

#!/usr/bin/python
import os
os.rename("test1.txt", "test2.txt")

remove() 方法

删除文件,参数为文件名。

os.remove(file_name)

示例

#!/usr/bin/python
import os
os.remove("test2.txt")

目录操作

所有文件包含在目录中,os 模块提供创建、删除、切换目录的方法。

mkdir() 创建目录

os.mkdir("newdir")

示例

#!/usr/bin/python
import os
os.mkdir("test")

chdir() 切换目录

os.chdir("newdir")

示例

#!/usr/bin/python
import os
os.chdir("/home/newdir")

getcwd() 获取当前目录

os.getcwd()

示例

#!/usr/bin/python
import os
os.getcwd()

rmdir() 删除目录

删除前需清空目录内容。

os.rmdir('dirname')

示例

#!/usr/bin/python
import os
os.rmdir("/tmp/test")

文件与目录相关方法

三个重要来源提供处理文件和目录的实用方法:

  • 文件对象方法:操作文件。
  • OS 对象方法:处理文件和目录。

Python

  1. 用 Go 轻松托管静态文件:经验证的方法
  2. 平锉刀:木工金属加工必备修整工具全解析
  3. C 语言输入输出(I/O)精通:scanf() 与 printf() 详解
  4. C语言文件处理完全指南:fopen、fprintf、fread 与 fseek
  5. C 语言文件 I/O 实战:创建、打开、读写与二进制操作
  6. C 语言头文件详解:类型、用法与最佳实践
  7. C++文件I/O完全指南:fstream读写、打开模式、定位指针与完整实例
  8. C# 文件 I/O 完全指南:流、读写操作与文件系统管理
  9. 精通Python输入输出与模块导入:实战指南
  10. Python 文件 I/O:掌握文件操作、读写与管理
  11. 精通 Python 目录与文件操作
  12. Python 检查文件与目录是否存在:实战指南