##language:zh <> ''文件处理是很多应用的基础功能, 相比其它语言 Python 对于文件处理更加容易; 下面由 Peyton McCullough 来解释其基础'' ---- * 文件处理是很多应用的重要功能,不许是用什么语言开发的. * 这里我们要尝试各种使用对文件的操作: * 读 * 写 * 补 * 或是其它古怪的事儿 * Let's get started. === 读和写 Reading and Writing === * 读/写 是对文件操作基础的基础了! * 我们打开文件准备写:{{{#!python fileHandle = open ( 'test.txt', 'w' ) }}} * 这里的'''’w‘''',指示我们将进行写 * 然后写入一些内容:{{{#!python fileHandle.write ( 'This is a test.\nReally, it is.' ) }}} * 这里写入文件的第一行是字串''"This is a test."'',第二行就是'“Really, it is.”' * 这是使用 '''\n''' 换行符来实现的 * 最后我们要关闭文件句柄:{{{#!python fileHandle.close() }}} * 正如所见,在Python 的对象世界中文件操作非常的方便 * 注意;'''“w”'''声明下的写入,将清除即有内容,如果你想追加内容 使用'''“a”'''模式 * 比如说:{{{#!python fileHandle = open ( 'test.txt', 'a' ) fileHandle.write ( '\n\n\nBottom line.' ) fileHandle.close() }}} * 那么从外部文件读入内容:{{{#!python fileHandle = open ( 'test.txt' ) print fileHandle.read() fileHandle.close() }}} * 这里打印出所有文件内容 * 也可以仅仅读一行:{{{#!python fileHandle = open ( 'test.txt' ) print fileHandle.readline() # "This is a test." fileHandle.close() }}} * 也可以将所有行读取为一个列表:{{{#!python fileHandle = open ( 'test.txt' ) fileList = fileHandle.readlines() for fileLine in fileList: print '>>', fileLine fileHandle.close() }}} * 读取文件时,Python 的读取位置会记录下来,例如:{{{#!python fileHandle = open ( 'test.txt' ) garbage = fileHandle.readline() fileHandle.readline() # "Really, it is." fileHandle.close() }}} * 只有第二行会打印出来 * 当然!我们可以告诉Python 从指定位置开始读取:{{{#!python fileHandle = open ( 'test.txt' ) garbage = fileHandle.readline() fileHandle.seek ( 0 ) print fileHandle.readline() # "This is a test." fileHandle.close() }}} * 以上示例就是令Python 从文件的第一个字节开始读取 * 同样我们也可以获知识当前的读取位置信息:{{{#!python fileHandle = open ( 'test.txt' ) print fileHandle.readline() # "This is a test." print fileHandle.tell() # "17" print fileHandle.readline() # "Really, it is." }}} * 也可以仅仅一次读取文件的几个字节:{{{#!python fileHandle = open ( 'test.txt' ) print fileHandle.read ( 1 ) # "T" fileHandle.seek ( 4 ) print FileHandle.read ( 1 ) # "T" }}} * 在Windows 和 Macintosh中, 有时需要读写二进制文件,比如说;图片,可执行文件;那未使用'''“b”'''模式就好:{{{#!python fileHandle = open ( 'testBinary.txt', 'wb' ) fileHandle.write ( 'There is no spoon.' ) fileHandle.close() fileHandle = open ( 'testBinary.txt', 'rb' ) print fileHandle.read() fileHandle.close() }}} ---- -- ZoomQuiet [<>]