2017-10-11 15 views
0

我在书中的练习15一章中学习python。 由于本书建议在bash上运行命令“python ex15.py ex15_sample.txt”,我只是遵循这个命令。在执行此程序之前,我是否必须创建另一个文本文件?

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

但是,在bash上出现这样的错误。

Traceback (most recent call last): 
    File "ex15.py", line 5, in <module> 
    txt = open(filename) 
IOError: [Errno 21] Is a directory: 'ex15_sample.txt' 

我用“的mkdir ex15_sample.txt”,甚至试图以文字文本文件在同一目录,但错误还是出现了一个文件。

+2

如果你在bash上使用'touch' - >'touch ex15_sample.txt'。 'mkdir'创建一个空目录。 –

+1

FWIW,SO Python聊天室常客[不建议LPTHW](http://sopython.com/wiki/LPTHW_Complaints)。如果它在为你工作,那太好了,但请注意,这本书有几个问题。另外请注意,Python 2将在2020年达到其生命终结,所以您应该学习Python 3,除非您需要Python 2来处理遗留代码。 –

回答

1

上壳,你会首先看到的运行man mkdir是这样的:

NAME 
    mkdir -- make directories 

,顾名思义,mkdir用于创建目录。在这种情况下,会创建一个名为ex15_sample.txt的空目录,因此open会引发您看到的错误。

如果你想创建一个文件,使用touch

touch ex15_sample.txt 

touch更新文件的mtime如果它存在,或创建文件,如果它不。

或者,使用cat>

cat > ex15_sample.txt 

运行的第一个命令后,打Ctrl+C,创建一个空文件。

0

您正在使用mkdir创建一个目录。

要在终端的文本文件类型,在同一目录下你的Python文件:

nano ex15_sample.txt 

这将让你到一个文本编辑器,只需键入您的文本,并保存按crtl+x并确认按yenter

现在您可以打开文件。

相关问题