Pycharm ve sys.argv argümanları


93

Komut satırı argümanlarını girdi olarak alan bir betikte hata ayıklamaya çalışıyorum. Bağımsız değişkenler, aynı dizindeki metin dosyalarıdır. Komut dosyası, sys.argv listesinden dosya adlarını alır. Benim sorunum, senaryoyu pycharm'daki argümanlarla başlatamıyorum.

"Çalıştır"> "Yapılandırmayı düzenle" menüsündeki "Komut dosyası parametreleri" alanına şu şekilde argümanlar girmeye çalıştım:

-s'file1.txt', -s'file2.txt'

Ama çalışmadı. Komut dosyamı bağımsız değişkenlerle nasıl başlatırım?

PS Ubuntu'dayım

Yanıtlar:


112

PyCharm'da parametreler Script Parameterssizin yaptığınız gibi eklenir, ancak çift ​​tırnak içine alınırlar ve ""Yorumlayıcı bayrakları gibi belirtilmeden -s. Bu bayraklar Interpreter optionskutuda belirtilmiştir .

Komut Dosyası Parametreleri kutusu içeriği:

"file1.txt" "file2.txt"

Interpeter bayrakları:

-s

Veya görsel olarak:

görüntü açıklamasını buraya girin

Ardından, değerlendirmek için basit bir test dosyasıyla:

if __name__ == "__main__":
    import sys
    print(sys.argv)

Sağladığımız parametreleri alıyoruz ( sys.argv[0]elbette komut dosyası adını tutarak):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']

Teşekkürler işe yaradı. Ayrıca "" yerine "" tırnak işareti kullanmam gerektiği ortaya çıktı.
YKY

3
Bu yardımcı oldu; ancak açıklığa kavuşturmak için, python betiğim parametre olarak iki dosya adı alıyor, biri -r için diğeri -s için (veya ikisi birden veya biri veya ikisi birden). Bu yüzden betik parametrelerim yorumlayıcı seçeneği olmadan [-p "prof_samples.txt" -r "resp_samples.txt"] olarak belirlendi.
harry

2
Sanırım bu yanıt güncel değil çünkü yokscript parameters
tisaconundrum

@tisaconundrum bunu kontrol ettikten sonra, bana PyCharm'ın hangi sürümünü çalıştırdığınızı söyleyebilir misiniz? En son sürümü (PyCharm Community Edition 2017.2.3 Build # PC-172.3968.37, 1 Eylül 2017'de oluşturulmuştur) indirdim ve hala Script parametersseçeneği görüyorum .
Dimitris Fasarakis Hilliard

Parametre değerlerini ekledikten sonra, UYGULA veya TAMAM düğmesine tıklandığında kod çalıştırılmaz. Yapılandırmaları kaydeder ve kodu çalıştırırsam, Pycharm python kodunda hala dikkate alınmayan argümanlar
Praveen L

78

Bu pencereye nasıl girileceğini merak eden başkalarının iyiliği için. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

Buna Select Run/Debug Configurations(solundaki görüntü açıklamasını buraya girin) tıklayarak ve Edit Configurations. Netlik için sağlanan bir gif.

görüntü açıklamasını buraya girin


1
Kısa klip gerçekten yardımcı oldu - teşekkürler! Gui şeylerinde nefret ettiğim şey bu. Bu bir Paskalya yumurtası avı gibi, komut satırında ise sadece
yazarsınız

Bu, en iyi oylanan olandan daha yararlıydı. Teşekkürler!
Aakash Basu

13

PyCharm Community veya Professional Edition 2019.1+ üzerinde :

  1. Menü çubuğundan Çalıştır -> Yapılandırmaları Düzenle'yi tıklayın
  2. Parametreler metin kutusuna argümanlarınızı ekleyin (örneğin file2.txt file3.txt, veya --myFlag myArg --anotherFlag mySecondArg)
  3. Uygula'yı tıklayın
  4. tıklayın Tamam

11

Jim'in cevap ek olarak (üzgün yeterli rep bir yorum yapmamayı), sadece pycharm belirtilen argümanlar anlamına işaret etmek istediği değil özel karakterler komut satırında ne yapacağını aksine kaçan var. O halde, komut satırında şunları yaparsınız:

python mediadb.py  /media/paul/New\ Volume/Users/paul/Documents/spinmaster/\*.png

PyCharm parametresi şöyle olacaktır:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"

5

PyCharm Edu sürümüne bilinmeyen bir nedenle komut satırı argümanları eklemenin mümkün olmadığına dikkat edin. Yalnızca Professional ve Community sürümlerinde yapılabilir.


3

İlk parametre, çalıştırmak istediğiniz komut dosyasının adıdır. İkinci parametreden itibaren, komut satırınızdan geçmek istediğiniz parametrelerdir. Aşağıda bir test komut dosyası verilmiştir:

from sys import argv

script, first, second = argv
print "Script is ",script
print "first is ",first
print "second is ",second

Ve giriş parametrelerini şu şekilde iletebilirsiniz: "Komut dosyanızın yolu", "İlk Parametre", "İkinci Parametre"

Betiğinizin Yolunun /home/my_folder/test.py olduğunu söyleyelim, çıktı şöyle olacaktır:

Script is /home/my_folder/test.py
first is First Parameter
second is Second Parameter

Umarım bu, giriş parametrelerinin virgülle ayrılmış olduğunu anlamam bir zaman aldığından yardımcı olur.


2

Aşağıdakileri Python dosyanızın üstüne ekleyin.

import sys

sys.argv = [
    __file__,
    'arg1',
    'arg2'
]

Şimdi, Python betiğine sağ tıklayabilirsiniz.


1

Edu sürümüne dahil olduğuna inanıyorum. Düz yeşil ok düğmesine (Çalıştır) sağ tıklayın ve "Parametre ekle" yi seçin.


1

Benim için eğitim sürümünde çalışıyor. Yorumlayıcı seçeneklerinde a -s seçeneğini belirtmeme gerek yoktu.

Komut satırı ile çalıştırmak için Pycharm parametreleri

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.