

python、というかプログラミング初心者です。  
ご回答頂けたら幸いです。

以下のコードをテキストエディタ(メモ帳)に書いた後、デスクトップの  
自分のフォルダにmymod.pyという名前で保存しました。

[code]

    def countLines(name):
    file = open(name)
    return len(file.readlines())
    
[/code]

そして、IDLE (Python GUI)にて以下の方法で起動しようとしたら、

[code]

    >>> import sys
    >>> sys.path.append("C:\Users\Owner\Desktop\c-file")
    >>> import mymod
    >>> mymod.test('mymod.py')
    
[/code]

以下のエラーが出ました。

[code]

    Traceback (most recent call last):
     File "<pyshell#3>", line 1, in <module>
      mymod.test('mymod.py')
     File "C:\Users\Owner\Desktop\c-file\mymod.py", line 9, in test
      return countLines(name) , countChars(name)
     File "C:\Users\Owner\Desktop\c-file\mymod.py", line 2, in countLines
      file = open(name)
    
    IOError: [Errno 2] No such file or directory: 'mymod.py'
    
[/code]

このエラーの意味するところ、そして対処法を教えていただけないでしょうか？  
ちなみに使用しているのはPython2.7.11です。  
宜しくお願いします。


CC BY-SA 3.0
2016-01-02T10:51:18.620
20536
2016-01-02T12:15:07.833
2016-01-02T11:12:58.497
8000
13860
question
python
pythonにてIOError: [Errno 2] No such file or directoryと表示され、手詰まりになる


> No such file or directory: 'mymod.py'

は`mymod.py`という「ファイルがない」という意味です。  
~~notepadではデフォルトでは`.txt`という拡張子で保存するので、  
本当に`mymod.py`で保存されているか`mymod.py.txt`で保存されていないか確認してみて下さい。（エクスプローラーの状態によっては拡張子が表示されないモードになっている場合があります）~~  
あと、カレントディレクトリはファイルのあるディレクトリになっていますか？  
フルパスに変えて実行してみて下さい。

あと、

[code]

    def countLines(name):
        file = open(name)
        return len(file.readlines())
    
[/code]

のようにインデントが必要で、  
`>>> mymod.countLines('mymod.py')`  
のように呼び出す必要があると思います。


CC BY-SA 3.0
2016-01-02T11:22:41.583
20538
2016-01-02T12:15:07.833
2016-01-02T12:15:07.833
5044
5044
20536
answer


以下の状況と推測します。

  1. Python IDLE はWindowsのスタートメニューなど（コマンドライン以外）から起動している

-> 起動直後の状態はおそらく、カレントディレクトリがPythonのインストールディレクトリとなっています。以下のコードで確認出来ます:
[code]     >>> import os

    >>> print(os.getcwd())
    
[/code]

  2. `mymod.py` を保存したディレクトリは `"C:\Users\Owner\Desktop\c-file"`

`file = open(name)` は `file = open('mymod.py')` として解釈されます。このとき、  
カレントディレクトリにある `'mymod.py'` ファイルを開こうとします。

上記の結果、Pythonをインストールしたディレクトリに mymod.py ファイルは無いため、 `No such file or directory`
(そんなファイル無いよ）というエラーになります。対処方法としては以下のいずれかがあります。

A. `os.chdir("C:\Users\Owner\Desktop\c-file")` を先に実行しておく。  
B. 開くファイルを絶対パスで指定する。


CC BY-SA 3.0
2016-01-02T11:34:06.653
20539
2016-01-02T11:34:06.653
806
20536
answer