LINUX.ORG.RU

PS1 в интерпретаторе python

 ,


1

2

Я уже задолбался гуглить, яндексить etc.
Но и не знал куда написать это вопрос, в итоге пишу сюда.
Соль в чем: у интепретатора python есть переменная sys.ps1, которая как известно определяет приглашения командной строки. Реально-ли в нее вывести время, имя пользователя, рабочую директорию и т.д.

$ python
Python 3.4.3 (default, Mar 25 2015, 17:13:50) 
[GCC 4.9.2 20150304 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> import os
>>> import time
>>> class TrueAdminCMD:
...   def __repr__(self):
...     cwd = os.getcwd()
...     t = time.asctime()
...     return "{cwd} {t} \\m/ \\m/ #".format(cwd=cwd, t=t)
... 
>>> sys.ps1 = TrueAdminCMD()
/home/myhome Fri Sep 18 12:57:27 2015 \m/ \m/ #
true_admin ★★★★★
()
$ python
Python 2.7.9 (default, Mar  1 2015, 12:57:24) 
[GCC 4.9.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from datetime import datetime
>>> class PS1(object):
...     def __str__(self):
...         return datetime.now().isoformat()
... 
>>> sys.ps1 = PS1()
2015-09-18T13:57:18.016821
2015-09-18T13:57:19.640484sys.ps1
<__main__.PS1 object at 0x7f844cc893d0>
Kilte ★★★★★
()

может попробовать ipython?

zolden ★★★★★
()
  1. Если в sys.ps1 хранится не строка, а другой объект, Python вызывает str(sys.ps1) каждый раз, когда надо вывести приглашение.
  2. В Python можно получить время, имя пользователя, рабочую директорию и т.д. в виде строки. В частности, можно создать объект, метод .__str__() которого будет это делать.
  3. Из 1 и 2 следует, что да, можно.

Но сам не делал никогда.

proud_anon ★★★★★
()
Последнее исправление: proud_anon (всего исправлений: 1)
Ответ на: комментарий от true_admin

О, спасибо, о великий Гарри Поттер кодер на python

onekasper
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.