打印文件作为参数传入

Sky*_*eth 0 python file

我有一个非常简单的python脚本,它应该打印一个像这样传递的文件的内容:python script.py stuff.txt.我没有得到任何输出.

这是代码:

import sys
fname = sys.argv[1]
f = open(fname, 'r')
f.read()
Run Code Online (Sandbox Code Playgroud)

从我所读到的,这应该是有效的.为什么不?

spe*_*ras 6

您阅读了该文件,但您没有对数据执行任何操作.

print(f.read())
Run Code Online (Sandbox Code Playgroud)

或者,为了更好的风格:

import sys
fname = sys.argv[1]
with open(fname, 'r') as f:
    print(f.read())
Run Code Online (Sandbox Code Playgroud)

这是使用文件的推荐方法.它保证退出with块时文件关闭.对你的小剧本来说并不重要,但这是一个很好的习惯.