2015-05-17 2 views
-2

У меня есть текстовый файл с именем hsp.txt в C:\Python27\Lib\site-packages\visual\examples и используется следующий код.Ошибка кодирования на Python: «файл не существует»

def file(): 
    file = open('hsp.txt', 'r') 
    col = [] 
    data = file.readlines() 
    for i in range(1,len(data)-1): 
     col.append(int(float(data[i].split(',')[5]))) 
    return col 

def hist(col): 
    handspan = [] 
    for i in range(11): 
     handspan.append(0) 
    for i in (col): 
     handspan[i] += 1 
    return handspan 

col = file() 
handspan = hist(col) 
print(col) 
print(handspan) 

Но когда я запускаю его, он говорит, что файл не существует.

Traceback (most recent call last): 
    File "Untitled", line 17 
    col = file() 
    File "Untitled", line 2, in file 
    file = open('hsp.txt', 'r') 
IOError: [Errno 2] No such file or directory: 'hsp.txt' 

Как исправить это? Также как мне выводить среднее значение и дисперсию?

+1

Введите это в: 'os.getcwd()'. Что он возвращает? – Zizouz212

+1

@MartijnPieters вы святой, потратив так много времени на все эти страшные вопросы. – dbliss

+0

@Jeffrey вы должны явно закрыть файл, когда закончите с ним, или открыть файл с помощью блока 'with'. – dbliss

ответ

1

Когда задающее только следующая строка

file = open('hsp.txt', 'r') 

Он пытается использовать текущий каталог, то есть, где бы вы запустили питон из. Поэтому, если вы, в командной строке, находились в C: \ temp и выполнили python test.py, он будет искать ваш hsp.txt в C: \ temp \ hsp.txt. Вы должны указать полный путь, когда вы не пытаетесь загрузить файлы из текущего каталога.

file = open(r'C:\Python27\Lib\site-packages\visual\examples\hsp.txt') 
2

Вы думаете, куда ведет ваш путь? Вам необходимо предоставить полный путь к файлу.

opened_file = open("C:/Python27/Lib/site-packages/visual/examples/hsp.txt") 

пара другие вещи:

  • Не используйте file в качестве имени переменной. Система уже использует это имя.

Используйте заявление with. Это считается лучшей практикой.

with open("C:/Python27/Lib/site-packages/visual/examples/hsp.txt"): 
    # do something 

Когда with блок заканчивается, файл автоматически закрывается. В вашем коде файл остается открытым до тех пор, пока функция file не будет закрыта (и, следовательно, сохранена) с помощью метода .close().

Смежные вопросы