python学习5

来源:互联网 发布:传感器数据采集系统 编辑:程序博客网 时间:2024/06/17 23:38

内建函数 open() 的基本语法是:

file_object = open(file_name, access_mode='r', buffering=-1)

file_name 是包含要打开的文件名字的字符串, 它可以是相对路径或者绝对路径. 

可选变量access_mode 也是一个字符串, 代表文件打开的模式. 通常, 文件使用模式 'r', 'w', 或是 'a'模式来打开, 分别代表读取, 写入和追加. 还有个 'U' 模式, 代表通用换行符支持(见下).使用 'r' 或 'U' 模式打开的文件必须是已经存在的. 使用 'w' 模式打开的文件若存在则首先清空, 然后(重新)创建. 以 'a' 模式打开的文件是为追加数据作准备的, 所有写入的数据都将追加到文件的末尾. 即使你 seek 到了其它的地方. 如果文件不存在, 将被自动创建, 类似以 'w'模式打开文件.

文件对象的访问模式

 文件模式               操作

 r                            以读方式打开 

rU 或 Ua               以读方式打开, 同时提供通用换行符支持 

w                             以写方式打开 (必要时清空)

a                             以追加模式打开 (从 EOF 开始, 必要时创建新文件)

 r+                           以读写模式打开 

w+                           以读写模式打开 (参见 w )

 a+                          以读写模式打开 (参见 a )

 rb                             以二进制读模式打开

 wb                            以二进制写模式打开 (参见 w )

 ab                             以二进制追加模式打开 (参见 a )

 rb+                           以二进制读写模式打开 (参见 r+ )

 wb+                         以二进制读写模式打开 (参见 w+ )

 ab+                          以二进制读写模式打开 (参见 a+ )

 a.                            Python 2.3 中新增

fp = open('/etc/motd') # 以读方式打开

fp = open('test', 'w') # 以写方式打开

fp = open('data', 'r+') # 以读写方式打开

fp = open(r'c:\io.sys', 'rb') # 以二进制读模式打开

open() 和 file() 函数具有相同的功能, 可以任意替换.您所看到任何使用 open() 的地方, 都可以使用 file() 替换它

我们建议使用 open() 来读写文件, 在您想说明您在处理文件对象时使用 file() , 例如 if instance(f, file) .

print 语句默认在输出内容末尾后加一个换行符, 而在语句后加一个逗号就可以避免这个行为. readline() 和 readlines() 函数不对行里的空白字符做任何处理, 所以你有必要加上逗号. 如果你省略逗号, 那么显示出的文本每行后会有两个换行符, 其中一个是输入是附带的, 另个是 print 语句自动添加的.



一般说来, 只要你的程序一执行, 那么你就可以访问三个标准文件. 它们分别是标准输入(一般是键盘), 标准输出(到显示器的缓冲输出)和标准错误(到屏幕的非缓冲输出). (这里所说的"缓冲"和"非缓冲"是指 open() 函数的第三个参数.) 这些文件沿用的是 C 语言中的命名, 分别为stdin , stdout 和 stderr . 我们说"只要你的程序一执行就可以访问这三个标准文件", 意思是这些文件已经被预先打开了, 只要知道它们的文件句柄就可以随时访问这些文件.Python 中可以通过 sys 模块来访问这些文件的句柄. 导入 sys 模块以后, 就可以使用sys.stdin , sys.stdout 和 sys.stderr 访问. print 语句通常是输出到 sys.stdout ; 而内建raw_input() 则通常从 sys.stdin 接受输入.


0 0