9
votes

Qu'est-ce que dans votre script de démarrage interactif Python?

Y a-t-il des éliminatoires communes que les gens mettent dans Python Interactive Démarrage scripts ? J'ai fait un dopey pour m'aider à savoir où je suis quand j'essaie de faire des opérations de fichier relatives ou importer code> S, à l'aide d'un module Win32 pour modifier le nom de la fenêtre de la console.

import sys
import os
import win32api
__title_prefix = 'Python %i.%i.%i %s %s' % (sys.version_info[0:4] +
                                            (sys.version_info[4] or "",))

def __my_chdir(path):
    __os_chdir(path)
    win32api.SetConsoleTitle(__title_prefix + " - " + os.getcwd())

# replace chdir func
__os_chdir = os.chdir
os.chdir = __my_chdir

os.chdir(r'C:\Scripts')


1 commentaires

Bien que cela ait des réponses étonnantes que j'ajoute à mon propre script de démarrage, j'ai voté pour fermer cela pour être principalement basé sur l'opinion.


3 Réponses :


4
votes
# Add auto-completion and a stored history file of commands to your Python
# interactive interpreter. Requires Python 2.0+, readline. Autocomplete is
# bound to the Esc key by default (you can change it - see readline docs).
#
# Store the file in ~/.pystartup, and set an environment variable to point
# to it:  "export PYTHONSTARTUP=/home/user/.pystartup" in bash.
#
# Note that PYTHONSTARTUP does *not* expand "~", so you have to put in the
# full path to your home directory.

import atexit
import os
import readline
import rlcompleter

readline.parse_and_bind("tab: complete")
historyPath = os.path.expanduser("~/.history.py")

def save_history(historyPath=historyPath):
    import readline
    readline.write_history_file(historyPath)

if os.path.exists(historyPath):
    readline.read_history_file(historyPath)

atexit.register(save_history)
del os, atexit, readline, rlcompleter, save_history, historyPath

6 commentaires

UNIX uniquement à partir des looks de docs.python.org/library/readline.html


@Nic quoi ?! Il y a des systèmes non unixsibles là-bas? :-)


PSH, je suis intégré au développement la plupart du temps, il est donc pratiquement impossible pour moi, car la grande majorité des compilateurs, les programmeurs et les débuggeurs sont toutes des fenêtres ciblées.


@Nic Cochez cette page Stackoverflow.com/Questtions/1081405/ ... . Vous voudrez peut-être aussi vérifier Ipython que moi rendra votre vie beaucoup plus facile si vous utilisez une invite de Windows


Il existe un remplacement en lecture ligne pour Windows: pyreadline LaunchPad.net/pyreadline


Quel est le point de faire une réutilisable sauvegarde_history (historique) (notez le paramètre flexible) Si vous venez de del IT immédiatement après le transmettre à atexit.register () ?




5
votes

J'utilise aussi voir , plus facile sur le remplacement des yeux du dir de Python.

>>> k = {}
>>> dir(k)
['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__','__doc__',
'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__',
'__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__',
'__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',
'__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy',
'fromkeys', 'get', 'has_key', 'items', 'iteritems', 'iterkeys', 'itervalues',
'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
>>> see(k)
    []              in              <               <=              ==
    !=              >               >=              hash()          help()
    iter()          len()           repr()          str()           .clear()
    .copy()         .fromkeys()     .get()          .has_key()      .items()
    .iteritems()    .iterkeys()     .itervalues()   .keys()         .pop()
    .popitem()      .setdefault()   .update()       .values()


0 commentaires