python 文件I/O
程序员文章站
2022-07-01 18:09:45
...
1.打开文件
通常用with open(file, mode, encoding)
用了with,文件在执行完with语句后会自动关闭文件
若直接用open,要手动关闭文件。
open函数的三个参数分别是:
- file:是一个包含了你要访问的文件名称的字符串值。
-
mode:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读r。
常见mode:
- encoding:指定文件编码,若想读写中文,推荐用utf-8
例:
with open('text',mode='r',encoding='utf-8') as f:
for i in f.readlines():
print(i.replace('\n',""))
2. file的常见属性
- file.closed 返回true如果文件已被关闭,否则返回false。
- file.mode 返回被打开文件的访问模式。
- file.name 返回文件的名称。
with open('text',mode='r',encoding='utf-8') as f:
print('访问模式: ',f.mode)
print('文件名称:',f.name)
print('文件是否关闭:',f.closed)
print("文件编码:",f.encoding)
输出结果:
访问模式: r
文件名称: text
文件是否关闭: False
文件编码: utf-8
3.file的常见方法
- read(n):从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
- readline():读取当前位置的一行
- readlines():读取当前位置后的多行
- write(str):在当前位置写入一个字符串
- writelines(list): 其参数可以是列表
例:打开一个空文本,分别用write和writelines写入数据
with open('text',mode='a+',encoding='utf-8') as f:
f.write("你好\n世界\n")
f.writelines(['hello world\n','hello world\n'])
此时文本内容为:
你好
世界
hello world
hello world
with open('text',mode='r',encoding='utf-8') as f:
print(f.readline())
print(f.readlines())
输出结果:
你好
['世界\n', 'hello world\n', 'hello world\n']
如何理解输出结果?
print(f.readline())这条语句读取了文本的第一行,此时光标移动到了文本第一行的最后一个位置。再执行print(f.readlines()),其结果就不包含文本第一行数据。
4.OS库相关方法
- rename():需要两个参数,当前的文件名和新文件名。
- remove():删除文件,需要提供要删除的文件名作为参数。
import os
os.rename('a.txt','b.txt')
os.remove('b.txt')
- mkdir()方法:在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。
- getcwd()方法:显示当前的工作目录。
- rmdir()方法删除目录,目录名称以参数传递。此方法必须保证文件夹为空
- os.listdir(path):获取path下的全部文件名称,以列表形式存储