Python 读取档案内容有不同方法, 以下会介绍 Python 3 种读取档案内容的方法。
但在开始前先了解一下开启档案的模式, 这个跟其他程式语言相似, 每种模式也有不同, 它们分别是:
r – read only
w – write only
a – append only
r+ – read as well as write
w+ – write as well as read
a+ – append as well as read
由上面可以看出, 如果要读取档案内容, 开启的模式需要设定成 r, r+, w+ 或 a+, 知道要设定的模式后, 现在是开启及读取档案的部份了。
Python read()
read() 函式在 Python 已经内建, 语法是:
file_object.read( n )
file_open_object 是用 open() 函式建立的物件, 而 “n” 是要读取的字节, 如果要整个档案合部读取, 省略便可以, 例如:
|
1 2 3 4 |
#!/usr/bin/python file = open("filename.txt", "r") print(file.read()) |
以上程式码会开启 filename.txt 档案, 并把全部内容印出。
Python readline()
readline() 是另一个 Python 内建的函式, 用法跟 read() 差不多, 主要分别是每次执行只会读取一行内容, 比较适合读取大档案。
例如档案内容是这样:
PHP
C
C++
Java
用 readline() 开启以上档案:
|
1 2 3 4 |
#!/usr/bin/python file = open("filename.txt", "r") print(file.readline()) |
由于以上只执行一次, 所以只会印出第一行, 即 “Python\n”, 这里要注意, readline() 会连同换行字符 “\n” 一同印出。
那么如果要将档案全部内容输出, 可以配合 for 或 while 来做, 以下是用 for 的写法:
|
1 2 3 4 5 6 |
#!/usr/bin/python file = open("filename.txt", "r") for line in file.readlines(): line = line.strip() ### 删除每行头尾空白字符 print line ### 印出内容 |
Python readlines()
readlines() 会将整个档案读取, 并把每一行回传到 list 内, 每行一个内容, 写法:
|
1 2 3 4 |
#!/usr/bin/python file = open("filename.txt", "r") print(file.readlines()) |
以上会印出以下内容:
|
1 |
['Python\n', 'PHP\n', 'C\n', 'C++\n', 'Java\n'] |