因此,如果用户从命令行运行我的文件(test.py),并且想要在该程序中打开文件,我该如何打开它?
假设用户是否写'test.py<在命令行中的file2.py',我如何在test.py中打开file2.py?
我知道这与sys.argv有关。
答案 0 :(得分:0)
您需要使用sys.argv
sys.argv中
传递给Python脚本的命令行参数列表。 argv [0]是脚本名称(无论这是否是完整路径名,它依赖于操作系统)。如果使用解释器的-c命令行选项执行命令,则将argv [0]设置为字符串' -c'。如果没有脚本名称传递给Python解释器,则argv [0]为空字符串。
它应该是:
python test.py your_file
sys.argv [0],其脚本名称为test.py
sys.argv [1],将有your_file
现在您可以使用open
内置打开文件:
my_file = open(sys.argv[1], 'r')
假设您输入了文件并编号:
python test.py your_file 2
这里: sys.argv [0] - > test.py
sys.argv [1] - > your_file
sys.argv [2] - >数字是2
答案 1 :(得分:0)
Hackaholic的答案非常好。 但是,如果您只想使用"<来自文件的重定向输入file2.py",然后你可以使用raw_input。
请注意,重定向输入本质上意味着输入在stdin上可用,您可以使用raw_input读取它。 我发现这个example与你正在尝试的类似:
while True:
try:
value = raw_input()
do_stuff(value) # next line was found
except (EOFError):
break #end of file reached
更新: 更优雅的是使用提供的解决方案here:
import sys
for line in sys.stdin:
do_something()