Argumen Pycharm dan sys.argv

93

Saya mencoba men-debug skrip yang menggunakan argumen baris perintah sebagai masukan. Argumen adalah file teks dalam direktori yang sama. Script mendapatkan nama file dari daftar sys.argv. Masalah saya adalah saya tidak dapat meluncurkan skrip dengan argumen di pycharm.

Saya telah mencoba memasukkan argumen ke dalam bidang "Parameter skrip" di menu "Jalankan"> "Edit konfigurasi" seperti ini:

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

Tapi itu tidak berhasil. Bagaimana cara meluncurkan skrip saya dengan argumen?

PS Saya menggunakan Ubuntu

YKY
sumber

Jawaban:

112

Di PyCharm, parameter ditambahkan Script Parametersseperti yang Anda lakukan, tetapi diapit oleh tanda kutip ganda "" dan tanpa menentukan flag Interpreter seperti -s. Bendera tersebut ditentukan di dalam Interpreter optionskotak.

Isi kotak Parameter Skrip:

"file1.txt" "file2.txt"

Bendera interpeter:

-s

Atau, secara visual:

masukkan deskripsi gambar di sini

Kemudian, dengan file tes sederhana untuk mengevaluasi:

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

Kami mendapatkan parameter yang kami berikan (tentu saja dengan sys.argv[0]memegang nama skrip):

['/Path/to/current/folder/test.py', 'file1.txt', 'file2.txt']
Dimitris Fasarakis Hilliard
sumber
Terima kasih itu berhasil. Selain itu, ternyata saya seharusnya menggunakan tanda kutip "" daripada ''.
YKY
3
Ini sangat membantu; tetapi untuk memperjelas, skrip python saya menggunakan dua nama file sebagai parameter, satu untuk -r dan satu untuk -s (atau keduanya atau satu atau tidak keduanya). Jadi parameter skrip saya ditentukan sebagai [-p "prof_samples.txt" -r "resp_samples.txt"] tanpa opsi penerjemah.
harry
2
Saya pikir jawaban ini sudah ketinggalan zaman karena tidak adascript parameters
tisaconundrum
@tisaconundrum setelah memeriksa dengan ini, dapatkah Anda memberi tahu saya versi PyCharm yang Anda jalankan? Saya baru saja mengunduh yang terbaru (PyCharm Community Edition 2017.2.3 Build # PC-172.3968.37, dibuat pada 1 September 2017) dan masih melihat Script parametersopsinya.
Dimitris Fasarakis Hilliard
Setelah menambahkan nilai parameter, klik tombol APPLY atau OK tidak menjalankan kode. Jika saya menyimpan konfigurasi dan menjalankan kode, masih argumen tidak dipertimbangkan dalam kode python Pycharm
Praveen L
78

Demi orang lain yang bertanya-tanya bagaimana cara menuju ke jendela ini. Begini caranya:

Anda dapat mengakses ini dengan mengklik Select Run/Debug Configurations(di sebelah kiri masukkan deskripsi gambar di sini) dan pergi ke Edit Configurations. GIF disediakan untuk kejelasan.

masukkan deskripsi gambar di sini

tisaconundrum.dll
sumber
1
Klip pendek itu sebenarnya membantu - terima kasih! Itulah yang saya benci tentang hal-hal gui. Ini seperti berburu telur Paskah sedangkan baris perintah Anda cukup mengetiknya.
Shanemeister
Ini lebih membantu daripada yang terbaik dengan suara positif. Terima kasih!
Aakash Basu
13

Di Komunitas PyCharm atau Edisi Profesional 2019.1+ :

  1. Dari bilah menu klik Run -> Edit Configurations
  2. Tambahkan argumen Anda di kotak teks Parameter (misalnya file2.txt file3.txt, atau --myFlag myArg --anotherFlag mySecondArg)
  3. Klik Terapkan
  4. Klik OK
Giorgos Myrianthous
sumber
11

Selain jawaban Jim (maaf tidak cukup poin perwakilan untuk memberi komentar), hanya ingin menunjukkan bahwa argumen yang ditentukan di PyCharm tidak memiliki karakter khusus yang lolos, tidak seperti yang akan Anda lakukan pada baris perintah. Jadi, sedangkan pada baris perintah Anda akan melakukan:

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

parameter PyCharm adalah:

"/media/paul/New Volume/Users/paul/Documents/spinmaster/*.png"
Paul Miller
sumber
5

Perhatikan bahwa untuk beberapa alasan yang tidak diketahui, tidak mungkin untuk menambahkan argumen baris perintah dalam versi PyCharm Edu. Itu hanya dapat dilakukan dalam edisi Profesional dan Komunitas.

Jan Bodnar
sumber
3

Parameter pertama adalah nama script yang ingin Anda jalankan. Dari parameter kedua dan seterusnya, itu adalah parameter yang ingin Anda lewati dari baris perintah Anda. Di bawah ini adalah skrip pengujian:

from sys import argv

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

Dan berikut adalah cara Anda meneruskan parameter input: 'Path to your script', 'First Parameter', 'Second Parameter'

Katakanlah Path ke skrip Anda adalah /home/my_folder/test.py, hasilnya akan seperti ini:

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

Semoga ini bisa membantu karena saya butuh waktu untuk mengetahui parameter input yang dipisahkan koma.

Rumela Saraswati
sumber
2

Tambahkan yang berikut ini ke bagian atas file Python Anda.

import sys

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

Sekarang, Anda cukup mengklik kanan pada skrip Python.

Ahmed
sumber
1

Saya yakin itu termasuk bahkan dalam versi Edu. Cukup klik kanan tombol panah hijau solid (Jalankan) dan pilih "Tambahkan parameter".

Pelajar Py
sumber
1

Ini berfungsi dalam versi edu untuk saya. Saya tidak perlu menentukan opsi -s dalam opsi penerjemah.

Parameter Pycharm untuk dijalankan dengan baris perintah

Awaa
sumber