python文件--I/O
1.读取键盘输入python提供了两种内置函数分别为:
input
raw_input
例:x=input('请输入你的名字:')
print(x)
2.打开文件(open)
open()函数:必须先用open()函数打开,创建一个file对象
语法:file=open(file_name,access_mode,buffering)
file_name:要打开的文件名称
access_mode:文件的访问模式
buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
3.打开文件的不同mode模式
模式 | 描述 |
---|---|
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
4.文件(file)对象的属性
属性 | 描述 |
---|---|
file.closed | 如果文件已被关闭返回true,否则返回false。 |
file.mode | 返回被打开文件的访问模式。 |
file.name | 返回文件的名称。 |
file.softspace | 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。 |
例:
5.close()方法:
File对象的close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
语法:
file.close()
例:
6.读写文件有两种方法:
read()
write()
7.write()方法:
Write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不仅仅是文字。
Write()方法不在字符串的结尾添加换行符('\n'):
语法:
file.write('str')
注str:表示字符串
例:
结果:在5.26.TXT文件中显示
8.read()方法:
read()方法是从文件中读取一个字符串.
语法:file.read(count)
注:count:数,在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入, 如果没有传入count, 它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。
例:
9.文件的位置:
tell()方法:告诉我们文件内的当前位置.
语法:
position=file.tell()
例:
注:关闭close()要始终在程序的最后一行
seek()方法:改变文件的当前位置
语法:position=file.seek(offset,from)
Offset:变量表示要移动的字节数。
From:变量指定开始移动字节的参考位置。
注意:如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
例:
10.重命名和删除文件
注:Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。
要使用这个模块,你必须先导入它.
导入os模块:import os
1.rename(current_file_name,new_file_name):重命名
rename():需要两个参数(当前文件名,新文件名)
例:
2.remove():删除文件,不删除文件夹,需要提供要删除的文件名作为参数。
语法:os.remove('文件名')
例:
3.python里的目录
mkdir()方法:在当前目录下创建新的目录, 你需要提供一个要创建的目录名的参数。
语法: os.mkdir('要创建的目录名称')
例:
chdir()方法
可以用chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。
语法:
os.chdir("newdir")
getcwd()方法:显示当前的工作目录
语法:os.getcwd()
例:
rmdir()方法:删除目录或文件夹,如果文件夹中有文件这必须先用remove()删除文件后,才能删除文件夹.否者不能删除.
语法:os.rmdir('需要删除的文件夹或目录名称')
例:1
例2:先删除文件夹中的文件,在删除文件夹
例3:
实例:文件的迭代
1.枚举的定义
1.定义枚举,首先要调用enum模块
2.枚举定义要用到class关键字,继承Enum类
3.用于定义枚举的class和定义类的class是有区别
示例代码1:
结果:
示例2:
结果:
示例3:
结果: