Optparse und tab completition funktioniert nicht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bennym
User
Beiträge: 36
Registriert: Freitag 13. Oktober 2006, 21:17
Kontaktdaten:

Montag 30. April 2007, 19:11

Hallo!

Ich habe folgendes Problem:
Ich im folgenden Script einen Pfad zur Datei als Parameter angeben, soweit so gut.

Will ich aber per tab completion die Datei auswählen, kann ich nur den Pfad zum Ordner auswählen wo die Datei drinnliegt, nicht aber die Datei.

z.B:
Dateipfad: /home/benny/Desktop/test.txt
Wenn ich dann script mit -f den Pfad übergeben will, kann ich mit <tab> nur bis zum letzten übergeordneten Ordner kommen. te<tab> sollte jetzt ja auf test.txt kompletieren, tut es aber nicht :(

Komisch ist aber, dass wenn ich die Datei mit einer .py Endung versehe automatisch kompletiert wird. Unterscheidet hier optparse anhand der Dateiendung oder liegt das an was anderem?

Wie krieg ich das so hin, sodass auf alle Dateitypen/Endungen kompletiert wird?

Vielen Dank im Vorraus

mfg benny

Code: Alles auswählen

#!/usr/bin/python
# -*-coding=utf-8 -*-

from optparse import OptionParser
import os


def main():
    parser = OptionParser()
      
    parser.add_option("-f", "--file", dest="filename",help="read data from FILENAME")
    
    (options, args) = parser.parse_args()

    z = options.filename
    
    print z 



if __name__ == '__main__':
    main()
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

Montag 30. April 2007, 19:15

TUFKAB – the user formerly known as blackbird
lunar

Montag 30. April 2007, 20:13

Mmmh, das vervollständigt doch nur die Optionen selbst, nicht aber die Argumente. Woher sollte optcomplete den wissen, dass '--file' eine Datei erwartet?

Ich würde eher darauf tippen, dass die bash das vorangestellte "python" (in "python skript.py --file") als Basis nimmt und deswegen nur *.py zulässt.
Zuletzt geändert von lunar am Mittwoch 2. Mai 2007, 12:42, insgesamt 1-mal geändert.
bennym
User
Beiträge: 36
Registriert: Freitag 13. Oktober 2006, 21:17
Kontaktdaten:

Dienstag 1. Mai 2007, 17:22

lunar hat geschrieben:
Mmmh, das vervollständigt doch nur die Optionen selbst, nicht aber die Argumente. Woher sollte optcomplete den wissen, dass '--file' eine Datei erwartet?

Ich würde eher darauf tippen, dass die bash das vorangestellte "python" (in "python skript.py --file" als Basis nimmt und deswegen nur *.py zulässt.
Jo, so is es. Die bash ist schuld :roll:
Egal, wenn ich das ohne Endung speichere, bietet tab completition alle Dateien an.

Die bash is einfach böse :D . Wenn ichs die Datei mit der Endung .sh abspeichere funktioniert tab completition. Sowas eigensinniges^^


mfg benny
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Mittwoch 2. Mai 2007, 10:10

Können wir uns auf "completion" einigen? ;)
Dann lieber noch Vim 7 als Windows 7.

http://pythonic.pocoo.org/
bennym
User
Beiträge: 36
Registriert: Freitag 13. Oktober 2006, 21:17
Kontaktdaten:

Mittwoch 2. Mai 2007, 19:58

Können wir uns auf "completion" einigen? :wink:
Aua, das tut weh. Ich werds mir merken :D
Antworten