我有这样的代码:
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()当我在终端中运行它时,文本文件将无法打开。为什么?
发布于 2014-01-05 03:43:35
当您使用以下两行时,您所说的是要求解释器读取两个参数:
from sys import argv
script, filename = argv 因此,当您将代码另存为test.py并尝试运行下面的代码时,您会得到一个ValueError,因为它只有一个$ python test.py只有一个参数。
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作为第二个参数来调用该脚本,它将运行:
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 )
发布于 2014-01-05 03:54:35
它可能是因为异常而发生的。文件可能不存在,或者您的参数可能是无效的字符串文件名,或者文件可能受密码保护。
您可以尝试使用try块捕获异常,然后继续。
https://stackoverflow.com/questions/20925766
复制相似问题