Python 文件I/O
读取键盘输入
# !/usr/bin/python # -*- coding: UTF-8 -*- s = raw_input("请输入内容:") print "输入的内容是 = " + s
结果:
请输入内容:I Love John
输入的内容是 = I Love John
打开和关闭文件
你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
语法:
file object = open(file_name [, access_mode][, buffering])
各个参数的细节如下:
- file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
- access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
- buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
示例:
# !/usr/bin/python # -*- coding: UTF-8 -*- # 打开一个文件 fo = open("foo.txt", "wb") # 没有就会去创建foo.text fo.write("你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。"); print "文件名: ", fo.name # 显示文件名称 print "是否已关闭 : ", fo.closed print "访问模式 : ", fo.mode print "末尾是否强制加空格 : ", fo.softspace # File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。 # 当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯 fo.close(); print "是否已关闭 : ", fo.closed
生成文件foo.txt
结果:
文件名: foo.txt
是否已关闭 : False
访问模式 : wb
末尾是否强制加空格 : 0
是否已关闭 : True
示例2:
# !/usr/bin/python # -*- coding: UTF-8 -*- # 打开一个文件 fo = open("foo.txt", "r+") str = fo.read(12); print "读取的字符串是 : ", str # 查找当前位置 position = fo.tell(); print "当前文件位置 : ", position # 把指针再次重新定位到文件开头 position = fo.seek(0, 0); str = fo.read(20); print "重新读取字符串 : ", str # 关闭打开的文件 fo.close()
结果:
读取的字符串是 : 你必须先 当前文件位置 : 12 重新读取字符串 : 你必须先用Pytho
重命名和删除文件
# !/usr/bin/python # -*- coding: UTF-8 -*- import os # 重命名文件test1.txt到test2.txt。 os.rename("foo.txt", "ILoveJohn.txt")
将上面那个foo.txt命名为ILoveJohn.txt文件
remove()方法
# !/usr/bin/python # -*- coding: UTF-8 -*- import os # 删除一个已经存在的文件test2.txt os.remove("ILoveJohn.txt")
看下结果:
文件已经被删除
Python里的目录:
mkdir():创建目录
示例:
# !/usr/bin/python # -*- coding: UTF-8 -*- import os os.mkdir("haha")
创建目录:
chdir():修改目录
getcwd():显示当前的工作目录
示例:
# !/usr/bin/python # -*- coding: UTF-8 -*- import os getcwd = os.getcwd() print getcwd
结果:
D:\python_study
rmdir()方法:删除目录
示例:
# !/usr/bin/python # -*- coding: UTF-8 -*- import os os.rmdir('haha')
已经不存在haha目录了