从Windows Powershell中调用Python后,我无法打开当前工作目录中的文件。
PS C:\python27> python
Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel
Type "help", "copyright", "credits" or "license" for more information.
之后,我输入:
x = open(ex15_sample.txt)
想要在文本文件的filename参数上调用open函数,我想用Python打开。我的想法是,我可以在Windows Powershell中运行以下代码,并通过Powershell在Python中打开该文件:
print x.read()
但是我无法进入这一步,因为在我输入
之后x = open(ex15_sample.txt)
Powershell输出以下内容:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'ex15_sample' is not defined
为了通过Powershell在Python中打开文件“ex15_sample.txt”,我还输入了:
import ex15_sample.txt
在网上看到这可行,但Powershell输出了以下内容:
File "<stdin>", line 1, in <module>
ImportError: No module named ex15_sample.txt
如何通过Powershell命令行界面从Python中打开文件“ex15_sample.txt”?
答案 0 :(得分:2)
您需要为字符串提供open()。
“ex15_sample.txt”是一个字符串文字,但ex15_sample.txt是您尚未定义的变量的名称。
所以,你需要输入
open("ex15_sample.txt")
答案 1 :(得分:1)
这是一个非常基本的编程概念,当然不是特定于Python。将值传递给类似open
的函数时,它可以是包含数据的变量,也可以是文字字符串。在这种情况下,您需要一个字符串,并且在大多数语言(包括Python)中,字符串必须用引号括起来:
x = open('ex15_sample.txt')
您误解了您对导入的看法:仅用于加载其他Python模块。
另请注意,这些都与Powershell完全没有任何关系。
答案 2 :(得分:0)
这样想,当你运行某些东西时,其中的所有单词都是命令(变量,函数等等),python会尝试解释所有这些东西,当你尝试这个时:
open(ex15_sample.txt)
Python将有效地搜索命令open
(它会找到,因为它是一个内置函数),然后它将搜索另一个不存在的命令ex15_sample
在python中,所以它会抛出一个错误。
你想要做的是将包含文件名称的文本传递给python,这样做的方法是用单引号或双引号括起来,'ex15_sample.txt'
或"ex15_sample.txt"
,这样做python将其解释为文本而不是试图将其理解为命令,所以
open('ex15_sample.txt')
是你真正想要的