2015-12-30 5 views
0

Я младенец в мире кодирования (неделя 6), и мне нужна помощь! Моя общая цель - написать программу, которая вводит файл unsorted_fruits.tex, читает его, сортирует список по алфавиту и затем записывает его в файл с именем sorted_fruits.txt.Errno 2 Python- Нет такого файла/каталога

До сих пор у меня есть свои основы (кроме сортировки и записи его в новый файл)

infile=open("unsorted_fruits.tex", "r") 
outfile=open("sorted_fruits.txt","w") 
fruit=infile.read(26) 
outfile.write(fruit) 
unsorted_fruits.sort() 
print (fruit) 
infile.close() 
outfile.close() 

Однако я продолжаю получать [Errno 2] Нет такого файла или каталога: «unsorted_fruits.tex»

Файл определенно сохранен на моем компьютере. Я думал, что это может быть .tex (я не был знаком с этим форматом), поэтому я сменил файл на .txt. и вызвал .txt, чтобы убедиться, что это сработало, не повезло, поэтому я изменил его обратно на .tex Любая помощь приветствуется, спасибо!

+2

Является ли файл с кодом, который вы отправили в том же каталоге, что и текстовые файлы, которые вы пытаетесь открыть? Какую команду вы используете для ее запуска? –

+0

Он отлично работает для меня за одним исключением, unsorted_fruits.sort() не существует (и он не должен быть таким, каким он не определен в коде). Убедитесь, что файл unsorted_fruits.tex находится в той же папке (каталоге), что и ваш скрипт Python. Если это не сработает, обновите свой вопрос путями файлов из трех файлов. –

+0

Дополнительная точка; вы записываете * несортированный * вход в выходной файл. –

ответ

0

Ваш код пытается найти текстовый файл в текущем каталоге. (Например, это может быть каталог, в котором установлен интерпретатор Python). Поэтому вы можете указать абсолютный путь. если текстовые файлы находятся в той же директории с питон скрипт, вы можете использовать что-то вроде:

file_name = os.path.join(os.path.dirname(__file__), 'unsorted_fruits.tex') 
with open(file_name, 'r') as f: 
    data = f.read() 

(Примечание: Я использую «с» синтаксисом при работе с файлом, так что мне не нужно, чтобы закрыть это вручную)