前言
- 打印内容到屏幕
最简单的输出方式是调用print函数,此函数会将你传递的表达式转化成字符串表达式,并将结果写道标准输出中。
- 读取键盘输入
python提供了两个raw_input和input内置函数从标准输入中读取一行文本,默认的标准输入是键盘。
在python2中有raw_input和input函数,raw_input是将从标准输入如果文本转成字符串原样输出,input是用来将用户的输入解读为python代码,并尝试运行他们。
在python3中废弃了raw_input,保留了input函数,作用和raw_input函数基本相同。如果想执行input的输入,可以使用eval()函数。
- python2中使用raw_input和input函数
raw_input([prompt])函数从标准输入读取一行,并返回字符串(去掉结尾的换行符):
已经在python3中废弃
- python3中使用input函数
input([prompt])和raw_input([prompt])函数功能基本类似。
一.文件操作
python提供了必要的函数和方法来进行默认情况下的文件基本操作。你可以用file对象来做大部分的文件操作。
1.1 文件打开open函数
必须先用python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
一个文件被打开后,就获得一个file对象,你可以获得该文件的各种信息和进行各种操作。
语法:
file object = open(file_name [, access_mode] [, buffering])
参数:
- file_name:文件名字符串
- access_mode:决定了打开文件的模式:只读,写入,追加等。默认文件访问模式是只读(r)。
文件模式:
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
读 | + | + | + | + | ||
写 | + | + | + | + | + | |
创建 | + | + | + | + | ||
覆盖 | + | + | ||||
指针在开始 | + | + | + | + | ||
指针在结尾 | + | + |
- buffering:缓冲行为。将对文件进行写和读,需要调用系统调用和访问硬盘,进行I/O,效率比较低。使用缓存,是为文件建立的缓存,先将硬盘中的数据读取到缓存中,达到某一规则,在进行一次I/O。
- buffering大于1,缓冲行为为全缓冲。缓存区的大小为buffering的值,当缓冲区中的数据达到缓冲区的大小,进行一次系统调用(I/O)。
- buffering等于1,缓冲方式为行缓冲。当碰到一个换行符,就进行一次系统调用(I/O)
- buffering等于0,缓冲方式为无缓冲。进行写和读时,立即进行系统调用(I/O)。
1.2 文件关闭close()方法
file对象的close方法是刷新缓冲区里任何没有写入的信息,并关闭该文件,这之后便不能再进行写入了。
当一个文件对象的引用被重新指定给另一个文件时,python会关闭之前的文件。
fileobject.close()
1.3 file对象属性
文件属性列表:
file.closed | 返回true如果文件已被关闭,否则返回false。 |
file.mode | 返回被打开文件的访问模式。 |
file.name | 返回文件的名称。 |
file.softspace | 末尾是否强制加空格。如果用print输出后,必须跟一个空格符,则返回false。否则返回true。python3.x不支持 |
1.4 读写文件
1.4.1 写文件write()方法
write()方法可将任何字符串写入一个打开的文件。需要注意的是,python字符串可以是二进制数据,而不仅仅是文字。write()方法不会再字符串的结尾添加换行符'\n'。
1.4.2 读文件read()方法
- read()方法:
read()方法从一个打开的文件中读取字符串,注意python字符串可以是二进制数据,不仅仅是文字。
str = fileobj.read([count])
count是读取的字符串字节数,从打开的文件中读取的字节计数。该方法从文件开头开始计数。如果没有传入count,它会尽可能多地读取更多内容,很可能是直到文件末尾。
- readline()方法
fileobj.readline([count])
count为空,从打开文件中读取整行数据,包括\n。count不为空读取对应字节数数据,直到结尾。
1.5 定位文件
- 文件当前位置tell()
tell()方法告诉你文件内的当前位置,下一次读写会发生在多少字节之后。
- 修改当前文件位置seek()
fileobject.seek(offset [,from])
offset:表示要移动的字节数
from:表示开始移动字节参考位置。如果from为0表示从文件的开头作为移动字节的参考位置,如果from设为1,则使用当前位置作为参考位置,如果from设为2,那么用文件末尾作为参考位置。
1.6 重命名和删除文件
python的os模块提供了帮你执行文件处理操作方法,比如重命名和删除文件。要使用os模块,你必须先导入它,然后可以调用os模块的方法。
1.6.1 rename()方法
rename()作用修改文件名,需要两个参数,当前文件名和新文件名。
os.rename('old_name', 'new_name')
1.6.2 remove()方法
remove()方法作用是删除文件,需要提供删除的文件名作为参数。
os.remove('filename')
1.7 操作目录
1.7.1 mkdir()方法
作用是创建一个目录。参数是要创建新目录名。默认是在当前路劲下创建。
os.mkdir('newdir')
1.7.2 getcwd()方法和chdir()方法
getcwd()方法,显示当前工作目录。
chdir()用来改变当前目录。参数修改当前目录的名称。
1.7.3 删除目录rmdir()
作用删除目录,参数需要删除的目录。在删除目录前必须先删除目录下的所有文件。
文件、目录相关的方法
File 对象和 OS 对象提供了很多文件与目录的操作方法,可以通过点击下面链接查看详情:
- File 对象方法: file 对象提供了操作文件的一系列方法。
- OS 对象方法: 提供了处理文件及目录的一系列方法。