首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在code - python中使用argv时,Open函数在终端上不起作用

在code - python中使用argv时,Open函数在终端上不起作用
EN

Stack Overflow用户
提问于 2014-01-05 03:35:49
回答 2查看 204关注 0票数 0

我有这样的代码:

代码语言:javascript
复制
from sys import argv 
script, filename = argv 
txt = open(filename) 

print "Here's your file %r:" % filename 
print txt.read() 

print "Type the filename again:" 
file_again = raw_input("> ") 

txt_again = open(file_again) 
print txt_again.read()

当我在终端中运行它时,文本文件将无法打开。为什么?

EN

回答 2

Stack Overflow用户

发布于 2014-01-05 03:43:35

当您使用以下两行时,您所说的是要求解释器读取两个参数:

代码语言:javascript
复制
from sys import argv
script, filename = argv 

因此,当您将代码另存为test.py并尝试运行下面的代码时,您会得到一个ValueError,因为它只有一个$ python test.py只有一个参数。

代码语言:javascript
复制
alvas@ubi:~$ python test.py
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    script, filename = argv 
ValueError: need more than 1 value to unpack

假设您有一个名为in.txt的文本文件,它只包含文本Hello World,并且您尝试使用in.txt作为第二个参数来调用该脚本,它将运行:

代码语言:javascript
复制
alvas@ubi:~$ echo "Hello World" > in.txt
alvas@ubi:~$ python test.py in.txt
Here's your file 'in.txt':
Hello World

Type the filename again:
> 

注意:第一行只是用来创建带有文本Hello World的in.txt文件的一种奇妙方式

有关使用argv =的很好的教程,请参阅http://www.tutorialspoint.com/python/python_command_line_arguments.htm )

票数 1
EN

Stack Overflow用户

发布于 2014-01-05 03:54:35

它可能是因为异常而发生的。文件可能不存在,或者您的参数可能是无效的字符串文件名,或者文件可能受密码保护。

您可以尝试使用try块捕获异常,然后继续。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20925766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档