变量=open("要打开的文件",打开方式)

打开方式有如下六种,默认打开方式为r。

(1)r:以只读方式打开    //只能读取内容,并不能往进写内容

(2)w:以写方式打开(必要时清空)//文件如果存在则清空打开,如果文件不存在则创建

(3)a:以追加模式打开    //打开之后不会清空,会以追加形式写入数据

>>> fname = open("/root/python/a.txt","a")  //以追加方式打开一个不存在的文件,相当于创建[root@pythion ~]# cat /root/python/a.txt    //查看文件,已经创建,但是里边没有内容>>> fname.write("aaaa\n")                   //写入内容aaaa[root@pythion ~]# cat /root/python/a.txt    //查看文件,还没有写入,其实只是写到了内存,并没有到硬盘里>>> fname.flush()                           //如果需要立刻写入硬盘,执行flush()函数即可[root@pythion ~]# cat /root/python/a.txt    //再次查看文件,已经写入aaaa>>> fname.write("bbbb\n")                   //将bbbb写入文件当中去>>> fname.close()                           //关闭文件[root@pythion ~]# cat /root/python/a.txt    //关闭文件后会将内容自动写入到硬盘中aaaabbbb

(4)r+:以读写方式打开,但是需要注意文件指针的位置

>>> fname = open("/root/python/a.txt", "r+")  //以r+方式打开>>> fname.write("abc")               //写入abc内容>>> fname.flush()                  //刷新[root@pythion ~]# cat /root/python/a.txt //查看,写入的内容的时候会从文件指针开始写入,原位替换abcabbbb>>> fname.readline()         //读取也是从文件指针开始读取,如图指针移到了a,'a\n'             //所以这行只读取了a和换行

w+:以读方式打开

a+:以读写方式打开

f = open(“/bin/ls”)   //加引号表示文件名,不加为变量f.read()          //括号中为空,表示把文件中的所有都读出来,括号中有数表示“按需读取”,单位为字节f.readline(大小)      //读取文件的一行f.readlines(["文件内容\n","文件内容\n"])   //把文件中的所有行都读出来,然后放到列表中f.write(“hello,world!!!”)         //将hello,world!!!写入到文件中去f.writelines(["hello\n","world\n"])     //用列表可以写入多行,需加\n来换行f.flush()      //如果需要立刻写进去,则需要执行此命令,相当于word中的ctrl+s保存f.close()      //关闭文件,关闭文件后加进去的内容会写在磁盘上,当大于4096字节的话,会自动往           //硬盘写,不会一直驻留在内存中。f.tell()       //查看文件指针在哪f.seek(offset[,whence])     //移动文件指针offset是相当于某个位置的偏移量whence的值,0表示文件开头,1表示当前位置,2表示文件的结尾>>> fname.seek(2,0)      //从0开始(第一个字符),移动两个位置>>> fname.tell()        //查看文件指针的位置2>>> fname.readline()       //读取一行,可以看到文件指针已经从abca中的a移动到了c上边'ca\n'>>> fname.seek(0,0)             //移动到文件开头>>> fname.readline()            //读取第一行后,指针移动后第二行开头'abca\n'>>> fname.tell()                //读取指针位置5>>> fname.seek(1,1)             //从当前位置向后移动一个指针位置>>> fname.tell()                //查看指针位置6>>> fname.seek(0,2)             //移动文件指针到行尾>>> fname.tell()                //查看文件位置22>>> fname.read()                //读取数据,已经是空值了,可以r+方式写入数据,不会覆盖''>>> fname.seek(5)               //将文件指针移动到5,也就是本文件的第二行行首>>> fname.readline()            //读取一行内容'bbbb\n[root@pythion python]# vim cp.py   #!/usr/bin/env pythons_fname = "/bin/ls"                   //将文件名赋值给变量d_fname = "/root/haha"s_fobj = open(s_fname)                //打开文件并复制给变量d_fobj = open(d_fname,"w")buf_size = 4096while True:    data = s_fobj.read(buf_size)      //读取4096个字节给data    if not data:                      //假如data为空,则break,结束本程序        break    d_fobj.write(data)                //将data数据写入目标文件中

标准文件

标准输入:一般是键盘,使用sys.stdin

标准输出:一般是显示器缓冲输出,使用sys.stdout

标准错误:一般是显示器的非缓冲输出,使用sys.stderr

>>> import sys                 //导入sys模块>>> import tab                 //导入tab模块>>> a = sys.stdin.readline()   //从屏幕读取一行内容赋值给ai love you>>> a                          //有\n'i love you\n'>>> b = raw_input()            //使用raw_input()函数读取数据赋值给bi love you>>> b                          //没有\n'i love you'>>> sys.stdout.write("i love you")     //在屏幕行输出,但是没有回车i love you>>> >>> sys.stdout.write("i love you\n")i love you>>> sys.stderr.write("i love you")     //同样标准错误输出,默认也没有换行符i love you>>> >>> sys.stderr.write("i love you\n")   i love you