私は新しいPythonユーザーです。プログラムによって開かれて読み込まれるテキストファイル(.txt)の名前を入力するpythonスクリプトを作成しました。作業ディレクトリの.txtファイル/変更時にPythonエラーメッセージが表示される
name = raw_input("Enter file:")
if len(name) < 1:
name = "test.txt"
handle = open(name)
これは私のために完全に罰金働いていたが、その後、私はアナコンダをインストールし、同じ.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ディレクトリとAnacondaを指すPATH変数を~/.bash_profile
ファイルで削除し、問題が解決するかどうか確認しました。 ?
.py
スクリプトがシェバング行に
#!/usr/bin/env python
私の情報が含まれています:(同じエラーを取得していますその時のために非常に役立つと
$ 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
おかげ
EDIT:!私はtest123.py
文書とtest.txt
ファイルの両方をコピーしたディレクトリ/Users/myusername/Documents
に入れとtを走った 彼は再びスクリプトを入力し、今回は「ファイルを入力」プロンプトで/Users/myusername/Documents/test.txt
(引用符は不要)を入力して正常に動作しました!
これまで私にとってはうまくいきましたが、Pythonスクリプトを実行すると、作業ディレクトリは自動的に.py
ファイルがあるディレクトリに変わります内部。これは間違っていますか?それとも、どういうわけか以前のように思えたが、今はそうではないので、どうすれば私の設定をそれに戻すことができるだろうか?
EDIT 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では、 'import os'' os.getcwd()'をチェックしてみてください。あなたの作業ディレクトリを変更するためのメニューオプションがあると思います。 – Andrew
STDINで文字列を入力すると引用符が削除されます。 – SomethingSomething
引用符がないと、残念なことに同じエラーメッセージが表示されます。 – Mabyn