如何在命令行中打开用户输入的文件?

时间:2015-03-20 03:08:11

标签: python

因此,如果用户从命令行运行我的文件(test.py),并且想要在该程序中打开文件,我该如何打开它?

假设用户是否写'test.py<在命令行中的file2.py',我如何在test.py中打开file2.py?

我知道这与sys.argv有关。

2 个答案:

答案 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()