打开.txt文件/更改工作目录时出现Python错误消息

时间:2016-09-11 17:56:17

标签: python python-2.7

我是一个新的python用户并编写了一个python脚本,提示程序打开并读取文本文件(.txt)的名称。

name = raw_input("Enter file:")
if len(name) < 1: 
    name = "test.txt"
handle = open(name)

这对我来说非常合适,但之后我安装了Anaconda并尝试运行相同的.py脚本并不断收到此错误消息:

$ python /test123.py
Enter file:'test.txt'
Traceback (most recent call last): 
  File "/test123.py", line 26, in <module>
    handle = open(name)
IOError: [Errno 2] No such file or directory: "'test.txt'"

即使我在脚本或文本文件中没有更改任何内容,文件文件肯定存在于目录中。然后我卸载了Anaconda并删除了Anaconda目录以及指向~/.bash_profile文件中的Anaconda的PATH变量,看看是否能解决问题。但我仍然得到同样的错误:(有什么问题?如果我直接从TextWrangler在终端中运行文件,我不会收到任何错误,而我的.py脚本包含shebang行#!/usr/bin/env python < / p>

我的信息:

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.11.6
BuildVersion:   15G1004

$ python
Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 26 2016, 12:10:39) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin

$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python

$ /usr/bin/python -V
Python 2.7.10

非常感谢您的时间和帮助!

修改 我复制了test123.py文档和test.txt文件并将它们放在目录/Users/myusername/Documents中并再次运行脚本,这次在&上输入/Users/myusername/Documents/test.txt(不带引号) #34;输入文件&#34;提示,它工作正常!所以现在我需要修改我的问题:

我的理解 - 以及之前一直对我有用的 - 是当运行python脚本时,工作目录会自动更改为.py文件所在的目录。这不正确吗?或者我怎么能改变我的设置,因为以前似乎已经出现过这种情况,但现在还没有。

编辑2: 既然我已经意识到原始错误的来源是Python使用的工作目录的结果,我已经能够通过在我的test123.py脚本中添加以下行来解决我的问题:

import os
abspath = os.path.abspath(__file__)
dname = os.path.dirname(abspath)
os.chdir(dname)

如此处所示:python: Change the scripts working directory to the script's own directory

但是,我也选择@SomethingSomething提供的答案,因为既然我已经能够更改工作目录,输入'test.txt'(带引号)无效,但是test.txt(不带引号)按需运行。

(我唯一想知道的是为什么之前,当我运行python脚本时,工作目录自动更改为.py文件所在的目录,然后以某种方式设置改变了,与我安装的Anaconda相对应。但是,既然我已经解决了我的问题,这似乎并不重要。)

感谢大家的帮助!

1 个答案:

答案 0 :(得分:3)

这很简单,输入错误:

不正确:

$ python /test123.py
Enter file:'test.txt'

正确:

$ python /test123.py
Enter file:test.txt

不包含'个字符。它不是代码,它只是标准输入