在提示中使用 Python 打开文件

Opening Files using Python in Prompt

从 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)

想在文本文件的文件名参数上调用打开函数,我想在 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"?

您需要为 open() 提供一个字符串。

"ex15_sample.txt" 是字符串文字,但 ex15_sample.txt 是您尚未定义的变量的名称。

因此,您需要输入

open("ex15_sample.txt")

这是一个非常基本的编程概念,当然不是 Python 特有的。当您将值传递给 open 之类的函数时,它可以是包含数据的变量,也可以是文字字符串。在这种情况下,您需要一个字符串,并且在大多数语言(包括 Python)中,字符串必须用引号括起来:

x = open('ex15_sample.txt')

你误解了你读到的有关导入的内容:那只是为了加载其他 Python 模块。

另请注意,其中 none 与 Powershell 完全没有关系。

这样想,当你 运行 某些东西时,其中的所有单词都是命令(变量、函数等),python 将尝试解释所有这些东西,当你尝试这个:

open(ex15_sample.txt)

Python 将有效地搜索一个命令 open(它会找到,因为它是一个内置函数),然后它将搜索另一个命令 ex15_sample python 中不存在,因此会抛出错误。

您要做的是将包含文件名的文本传递给 python,方法是用单引号或双引号将其括起来,'ex15_sample.txt'"ex15_sample.txt",这样 python 将其解释为文本而不是试图将其理解为命令,因此

open('ex15_sample.txt')

才是你真正想要的