2011-02-02 7 views
8

Pobrałem plik python xxxxxx.py, który powinien działać w wierszu poleceń przez pisanie: python xxxxxx.py filename1 filename2 i powinien wziąć te dwa pliki jako argumenty.Przekazywanie argumentu wiersza poleceń do programu w języku Python za pomocą IDLE?

Zastanawiam się, czy istnieje sposób, w jaki mogę użyć IDLE do przekazania tych argumentów. Czy istnieje sposób inny niż ustawienie sys.argv?

Dzięki

+5

nie rozumiem dlaczego ludzie nalegać na myśli tego nieaktywnego jest coś przydać. –

+0

Proszę, możesz podać mi sugestie dotyczące IDE, które uważasz za przydatne dla Windows. Byłbym wdzięczny, że –

+0

Nie przekazujesz argumentów w IDLE w czasie wykonywania. Łatwo jest po prostu wpisać swoje polecenie w wierszu poleceń. Co powstrzymuje cię przed powiązaniem 'python xxxxxx.py nazwa_pliku1 nazwa_pliku2' w linii poleceń? Lub skopiować i wkleić go w wierszu poleceń? Lub używając strzałki w górę, aby wpisać ją ponownie w wierszu poleceń? –

Odpowiedz

4

Można to zrobić z wiersza poleceń z:

idle.py -r scriptname.py umieszczone argumentów tutaj

Można spróbować innego IDE jak ActivePython

Albo można załatać IDLE :

http://bugs.python.org/issue5680

+0

jeśli jestem w oknach. moją ścieżką jest teraz C: \ Python26 ... etc \ idlelib, więc mogę uruchomić bezczynnie. Ale skrypt jest gdzieś indziej i dlatego nie może go znaleźć, co mam zrobić? –

+0

Nieważne! Właśnie dodałem C: \ Python26 \ Lib \ idlelib do ścieżki w Advanced System Settings –

+1

Po prostu zmodyfikuj sys.argv w swoim kodzie. Na przykład 'sys.argv = ['scriptname.py', 'arg1', 'arg2', 'arg3']' – SomeGuyOnAComputer

6

To zależy od zawartości pliku Python. Jeśli jest dobrze napisana, jak:

#! /usr/bin/env python 

def process(files): 
    for file in files: 
     # ... 

if __name__ == '__main__' 
    # some error checking on sys.argv 
    process(sys.argv[1:]) 
    sys.exit(0) 

Następnie można po prostu zaimportować plik Python i uruchomić go lubię:

import name_of_file 

# ... 
     name_of_file.process([file1, file2, file3]) 
# ... 

Tak, to naprawdę zależy od tego, jak jest napisane. Jeśli nie jest napisany dobrze, ale możesz go edytować, chciałbym go zmienić, aby mógł być używany jako biblioteka; w przeciwnym razie użyłbym modułu podprocesu do wywołania programu.

+1

Po prostu chcę przekazać argument w czasie wykonywania, gdy uruchamiam skrypt Pythona. Czy jest jakiś sposób na zrobienie tego? –