Python的文件
文件对象
一些跨平台的os模块的属性:
os模块属性 | 说明 |
---|---|
os.curdir | ‘. ‘(Windows and POSIX) |
os.pardir | ‘.. ‘(Windows and POSIX),父目录 |
os.devnull | ‘/dev/null ‘(POSIX)、’nul ‘(Windows),null device的路径 |
os.sep | ‘/ ‘(POSIX)、’\\ ‘(Windows),路径的分割 |
os.pathsep | ‘: ‘(POSIX)、’; ‘(Windows),搜索路径的分割(as in PATH) |
os.linesep | ‘\n ‘(POSIX)、’\r\n ‘(Windows),注意Do not use os.linesep as a line terminator when writing files opened in text mode (the default); use a single ‘\n ’ instead, on all platforms. |
(注:\r = RETURN, \n = NEWLINE)
>>> import os
>>> os.name
'nt'
>>> os.curdir
'.'
>>> os.pardir
'..'
>>> os.devnull
'nul'
>>> os.sep
'\\'
>>> os.pathsep
';'
>>> os.linesep
'\r\n'
>>> os.SEEK_SET
0
>>> os.SEEK_CUR
1
>>> os.SEEK_END
2
>>>
文件方法
打开
- open()
读
- read()
- readline()
- readlines()
写
- write()
- writelines()
- truncate()
- flush()
其它
- tell()
- seek()
关闭
- close()
文件属性
- name
- mode
- closed
命令行参数
sys模块通过sys.argv
属性提供了对命令行参数的访问。
- sys.argv 命令行参数列表
- len(sys.argv) 命令行参数的个数(相同于C语言中的argc)
例子:
# coding=utf-8
__author__ = 'Z'
import sys
def sayhello():
v = sys.argv
if len(v) == 1:
print 'hello world'
elif len(v) == 2:
print 'hello, arg: %s' % v[1]
else:
print 'too many args'
if __name__ == '__main__':
sayhello()
运行结果:
>python test.py Peter
hello, arg: Peter
说明:当我们在命令行运行当前.py模块文件时,Python解释器把一个特殊变量__name__
置为__main__
。
而如果在其他地方导入该.py模块时,if
判断将失败,因此,这种if
测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是执行测试。
文件系统
这两个模块提供了与平台和操作系统无关的统一的文件系统访问方法。