Ошибка при запуске команды ls с использованием символа тильды в скрипте python - PullRequest
0 голосов
/ 22 января 2020

Когда я использую символ тильды в вызове подпроцесса, я получаю сообщение об ошибке. В противном случае программа работает нормально.

Программа

#!/usr/local/bin/python

import subprocess
subprocess.call(["ls","-lrth","~"])

Ошибка

ls: cannot access ~: No such file or directory

1 Ответ

1 голос
/ 22 января 2020

Тильда (~) - это ярлык оболочки для домашнего каталога пользователя. Если вы хотите перечислить все файлы / каталоги в домашнем каталоге пользователя, вы можете расширить путь, используя os.path.expanduser .

#!/usr/bin/env python
import subprocess
import os

subprocess.call(["ls","-lrth",os.path.expanduser("~")])
...