Файл не найден по абсолютному пути

#python #python-3.x

#python #python-3.x

Вопрос:

У меня есть скрипт, который создает файл и перемещает его os.rename , файл генерируется во время выполнения скрипта, однако, когда я открываю файл, я получаю

 os.rename(str(PATH_TO_PROGRAM) str("Outputs/important_output.txt"), str(args['output_dir'])  str("important_output.txt"))

with open(str(args['output_dir']) str("important_output.txt), "r") as infile:
     do stuff
  

Я получаю следующую ошибку:

   File "my_script.py", line 2863, in <module>
    with open(str(args['output_dir']) str("important_output.txt"), "r") as infile:

FileNotFoundError: [Errno 2] No such file or directory: '/mnt/c/Users/jaysp/Desktop/new/important_output.txt' 
  

Я не уверен, почему файл не найден. Он генерируется во время выполнения скрипта. Я вижу его в каталоге, в который я его копирую. Если это поможет, я запускаю скрипт из подсистемы Windows Linux и редактирую свой код в VSCode.

Комментарии:

1. ну, это понятно /mnt/c/Users/jaysp/Desktop/new/important_output.txt не существует или у вас нет прав доступа к этому каталогу, введите ls -lh /mnt/c/Users/jaysp/Desktop/new и проверьте, есть ли у вас права на выполнение ( x)

2. @Mr.bug разрешения -rwxrwxrwx

3. введите file /mnt/c/Users/jaysp/Desktop/new/important_output.txt и проверьте, нет ли у вас опечатки

4. @Mr.ошибка, которую я скопировал непосредственно из FileNotFoundError, и я получаю это: /mnt/c/Users/jaysp/Desktop/new/important_output.txt : Текст в формате ASCII

5. Обновление: я использовал скрипт на другом компьютере, и он сработал. Что может быть причиной этой ошибки?

Ответ №1:

Попробуйте использовать os.path.join для объединения путей

 input = os.path.join(PATH_TO_PROGRAM, "Outputs/important_output.txt")
output = os.path.join(args['output_dir'], "important_output.txt")
os.rename(input, output)

with open(output, 'r') as infile:
  ...