FileNotFoundError при открытии TXT-файла с помощью Python

1

Я пытаюсь открыть txt файл для чтения с помощью этого кода:

type_comments = [] #Declare an empty list
with open ('society6comments.txt', 'rt') as in_file:  #Open file for reading of text data.
 for line in in_file: #For each line of text store in a string variable named "line", and
   type_comments.append(line.rstrip('\n'))  #add that line to our list of lines.

Ошибка:-

Error  - Traceback (most recent call last):
  File "c:/Users/sultan/python/society6/society6_promotion.py", line 6, in <module>
    with open ('society6comments.txt', 'rt') as in_file:
FileNotFoundError: [Errno 2] No such file or directory: 'society6comments.txt'

У меня уже есть имя файла с 'community6comments.txt', в том же каталоге есть мой скрипт, так почему он показывает ошибку?

Изображение 174551

Показать ещё 1 комментарий
Теги:
file
error-handling

2 ответа

0
Лучший ответ

Вы можете использовать os.path.dirname(__file__) чтобы получить имя каталога для скрипта, а затем присоедините имя файла, которое вы хотите:

import os
with open (os.path.join(os.path.dirname(os.path.abspath(__file__)), 'society6comments.txt'), 'rt') as in_file:
  • 0
    Вы хотите os.path.join(os.path.dirname(os.path.abspath(__file__)), "yourfile.ext")
  • 0
    Только если ОП делает chdir да; в противном случае dirname всегда будет действительным из текущего рабочего каталога. Я обновил свой ответ на всякий случай, хотя. Благодарю.
Показать ещё 1 комментарий
2

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

  • 3
    Когда каталог, в котором находится ваш py-файл, не находится в рабочем каталоге?
  • 1
    @SuperStew всякий раз, когда вы запускаете скрипт из другого места, всякий раз, когда что-либо в цепочке (например, плохо написанный модуль, который вы импортируете в ваш скрипт) меняет рабочий каталог, и я даже не говорю о том, что может произойти, когда ваш "py файл" "используется как модуль вместо скрипта.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню