从命令行读取文件在Python中的实现

13

如何从Python命令行读取文件?比如说我有一个text.txt文件,我想在我的prefixer.py中执行$ python prefixer.py text.txt,那么我该如何读取这个文本文件呢?

3个回答

24
import sys

f = open(sys.argv[1],"r")
contents = f.read()
f.close()
print contents 

或者,更好的方式是,

import sys
with open(sys.argv[1], 'r') as f:
    contents = f.read()
print contents

我在sys包中没有找到这个open命令。有人能指引我查看文档吗?编辑:刚刚发现_http://docs.python.org/2/library/functions.html#open_ - Dustin

10

我认为对于这个问题来说fileinput更好。对于简单的脚本易于使用:

import fileinput
for line in fileinput.input():
    process(line)

然后您可以执行python myscript.py file.txt,甚至可以将其连接。完美无缺!

https://docs.python.org/3/library/fileinput.html


2
import sys

file_name = sys.argv[1]
f = open(file_name)
data = f.read()
f.close()

1
不要忘记从 sys 导入 argv - Ismail Badawi
1
如果您有更多的参数,应该使用OptParse来读取这些参数。 - martincho
Python 3.2+上改进的argparse - agf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接