位置:首页 > 网络编程 > Python
点击展开栏目简介

                                                    

Python2:文件I/O

分享到: 微信 新浪微博 更多

打印到屏幕:print语句

print "Python 是一个非常棒的语言,不是吗?";

获取键盘输入:raw_input函数和input函数

str = raw_input("请输入:"); # raw_input原样输出键盘输入的内容
print "你输入的内容是: ", str

# 执行输入测试
请输入:Hello Python!
你输入的内容是:  Hello Python!

input函数基本类似,但是可以额外接收表达式并返回执行结果


str = input("请输入:"); # input函数可以额外接收表达式并返回执行结果
print "你输入的内容是: ", str

# 执行输入测试
请输入:[x*5 for x in range(2,10,2)]
你输入的内容是:  [10, 20, 30, 40]
打开和关闭文件:可以用 file 对象做大部分的文件操作。

open函数用于打开一个文件,创建一个file对象

file object = open(file_name [, access_mode][, buffering])
file_name:文件名称的字符串值。
access_mode:可选参数,打开文件的模式:只读,写入,追加等,默认模式为只读(r)。
buffering: 是否使用缓存。0:不使用缓存;1:使用缓存。如果为大于1的整数,表示寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

File对象的属性

file.closed 返回true如果文件已被关闭,否则返回false。
file.mode 返回被打开文件的访问模式。
file.name 返回文件的名称。
file.softspace 如果用print输出后,必须跟一个空格符,则返回false。否则返回true。

# 打开一个文件
fo = open("foo.txt", "wb")
print "文件名: ", fo.name  # foo.txt
print "是否已关闭 : ", fo.closed # False
print "访问模式 : ", fo.mode # wb
print "末尾是否强制加空格 : ", fo.softspace # 0
close方法关闭之前打开的文件
# 打开一个文件
fo = open("foo.txt", "wb")
print "文件名: ", fo.name
 
# 关闭打开的文件
fo.close()

File对象的方法:

write()方法:将字符串写入文件(字符串可以是二进制数据),write()方法不会在字符串的结尾添加换行符('\n'):

fo = open("foo.txt", "wb")
fo.write( "www.runoob.com!\nVery good site!\n");
 
# 关闭打开的文件
fo.close()
read()方法:从打开的文件中读取内容。

fileObject.read([count]);

参数是读取的字节计数。从文件头开始读入,如果没有传入count,它会读取尽可能多的内容,很可能是直到文件的末尾。

fo = open("foo.txt", "r+")
str = fo.read(10);
print "读取的字符串是 : ", str
# 关闭打开的文件
fo.close()

tell()方法:告诉你文件内的当前位置

seek(offset [,from])方法:改变当前文件的位置。Offset表示要移动的字节数。From指定开始移动字节的参考位置。

    from为0,将文件的开头作为移动字节的参考位置。

    from为1,则使用当前的位置作为参考位置。

    from为2,那么该文件的末尾将作为参考位置。

# 打开一个文件
fo = open("foo.txt", "r+")
str = fo.read(10);
print "读取的字符串是 : ", str
 
# 查找当前位置
position = fo.tell();
print "当前文件位置 : ", position
 
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0);
str = fo.read(10);
print "重新读取字符串 : ", str
# 关闭打开的文件
fo.close()

重命名和删除文件

os模块提供了文件处理方法,比如重命名和删除文件。

rename()方法:重命名文件

import os
# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )
remove()方法:删除文件
import os
 
# 删除一个已经存在的文件test2.txt
os.remove("test2.txt")
mkdir()方法:在当前目录下创建新目录
import os
# 创建目录test
os.mkdir("test")
chdir()方法:改变当前的目录
import os
# 将当前目录改为"/home/newdir"
os.chdir("/home/newdir")
getcwd()方法:显示当前的工作目录。
import os
# 给出当前的目录
print os.getcwd()
rmdir()方法:删除目录,目录名称以参数传递。
import os
# 删除”/tmp/test”目录
os.rmdir( "/tmp/test"  )


上篇:Python2:模块

下篇:Python2:File对象方法和OS对象方法

发表评论 ​共有​条评论
  • 匿名发表