欢迎访问宙启技术站
智能推送

如何使用Python文件I/O函数进行文件读写

发布时间:2023-06-26 19:03:27

文件I/O函数是Python中重要的文件读写函数。文件读取是指讲文件的数据读入计算机程序中,文件写入是将程序中的数据写入到文件中。文件I/O函数是Python中通过文件读写实现数据传输的基本工具。在Python中,通过打开文件以进行读写操作,一旦完成读写操作,文件必须关闭才能专注于下一个任务。

一般情况下,文件输入和输出分别用open()函数和read()、write()函数完成。打开文件操作有着诸如访问、读写、追加内容或创建新文件等各种操作。 如果文件大小较大,就需要处理文件块读写和逐行读写操作。如果要对多个文件做操作,需要使用os和os.path模块来列出文件和目录。下文将详细介绍Python中的文件读写操作。

1. 文件的打开和关闭

打开文件时,需要使用Python中的open()函数,并进行相应的文件读取或写入操作。open()函数的基本语法如下:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

其中,必须提供file参数,mode参数表示打开文件的模式,默认是只读模式(‘r’),可选参数如下表所示:

| mode | 模式 |

| :-----: | :--------------------------------- |

| 'r' | 只读,文件从头到尾可读取 |

| 'w' | 只写,文件从头到尾可写入 |

| 'x' | 独占,以独占模式打开文件,创建新文件 |

| 'a' | 追加,写入文件末尾 |

| 'b' | 以二进制模式打开文件 |

| 't'或'' | 以文本模式打开文件 |

| '+' | 更新,读写模式 |

以下是一些常用示例:

# 打开文件,文件名为helloworld.txt
f = open("./helloworld.txt")   

# 打开文件,文件名为helloworld.txt,以只写模式'w'打开文件
f = open("./helloworld.txt", 'w')

# 打开文件,文件名为helloworld.txt,以只写模式'wb'打开,以二进制写入
f = open("./helloworld.txt", 'wb')

打开文件操作完成后,还需要关闭文件,关闭文件需要用close()函数。示例如下:

f = open("./helloworld.txt", 'w')
# do something
f.close()

2. 读取文件的方法

(1)read()方法

read() 方法用于从文件中读取指定数目的字符,默认全读,不指定数目为全读。

f = open("./helloworld.txt", "r")
print(f.read(5)) 
f.close()

结果输出:Hello

(2) readline()方法

readline()方法用于读取文本文件中的一行数据。

f = open("./helloworld.txt","r") 
print(f.readline())
f.close()

结果输出:Hello Python!

(3) readlines()方法

readlines()方法用于读取文本文件中的所有行数据。

f = open("./helloworld.txt", "r")
print(f.readlines())
f.close()

输出结果:

['Hello Python!

', 'Do you know Python?']

(4)seek()方法

seek()方法用于移动文件指针到指定位置。

f = open("./helloworld.txt", "r") 
f.seek(7)
print(f.read(4))
f.close()

结果输出:Python

3. 写入文件的方法

(1) write()方法

write()方法用于将字符串写入文件。

f = open("./helloworld.txt", "w")
f.write("Hello Python!
")
f.write("Do you know Python?")
f.close()

执行后,当前目录下就会生成一个helloworld.txt的文件,文件内容如下:

Hello Python!

Do you know Python?

(2) writelines()方法

writelines()方法用于将列表中的字符串逐行写入文件中。

f = open('./helloworld.txt', 'w')
lines = ['hello python 
','welcome to python 
']
f.writelines(lines)
f.close()

执行后helloworld.txt文件内容如下:

hello python

welcome to python

4. 其他文件操作

(1)with语句

使用with语句可以方便地处理文件IO操作,无需调用close()方法来关闭文件。

with open("./helloworld.txt", "r") as f:
    print(f.read())

结果输出:hello python

welcome to python

(2)文件和文件夹操作

Python的os模块和os.path模块提供了文件和文件夹操作的方法。其中os模块主要用于文件和文件夹路径的操作,os.path模块主要用于文件属性的操作。

import os
# 获取当前目录
print(os.getcwd())

# 更改目录
os.chdir('..')

# 创建文件夹
os.mkdir('temp')

# 删除文件夹
os.rmdir('temp') 

# 判断文件夹是否存在
os.path.exists('./temp')  

5. 总结

文件I/O函数是Python中文件读写的基本工具,用于读取文件、写入文件和文件操作。Python中的文件读写操作流程为:打开文件 -> 读写文件 -> 关闭文件。由于文件读写操作可能会涉及到操作系统资源的释放问题,因此建议使用with语句来实现文件操作,从而避免了手动关闭文件及异常问题的发生,从而保证代码的可靠性和稳定性。