在提示符中使用Python打开文件

时间:2015-01-10 23:40:37

标签: python windows

从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”?

3 个答案:

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

是你真正想要的