Konu başlığında bahsettiğim gibi internet ağımdaki tüm makineleri nasıl listeleyebilirim ?
Bu arada yeniyim, hepinize selamlar.
Konu başlığında bahsettiğim gibi internet ağımdaki tüm makineleri nasıl listeleyebilirim ?
Bu arada yeniyim, hepinize selamlar.
Şu şekilde:
import subprocess
subprocess.Popen(["netsh", "wlan", "show", "network"])
Bu kod sadece Windows için.
Bu da Linux için:
import subprocess
subprocess.Popen(["nmcli", "dev", "wifi"])
Nmap modulunu arastira bilirsiniz
Bu kodların aşağıdakinden farkı ne?
import os
os.system("nmcli dev wifi")
Farkı yoksa subprocess.Popen(list())
ne işe yarayabilir?
subprocess.Popen()
ile çıktıyı daha rahat kontrol edebilirsiniz.
Şöyle bir farkı da var:
Aşağıdaki kodları bir betik dosyasına yazın, kaydedin ve dosyayı çalıştırın:
import os
os.system("notepad")
Notepad açılacaktır ama işlem sonlanmayacaktır. Yani cmd.exe’ de Notepad kapatılana kadar beklemek zorunda kalacaksınız.
Ama kodları şu şekilde yazarsanız:
import subprocess
subprocess.Popen(["notepad"])
Notepad açılacak ve betiğin çalışması sonlanacaktır.
Hani bazı programlar güncellenirken kapatılır, sonra kendi kendine tekrar açılır ya, işte böyle durumlarda subprocess.Popen()
'i kullanabilirsiniz.
Argüman göndermesi kolaymış. Ama çıktıyı kontrol etmek nasıl kolay anlamadım:
>>> import subprocess as sp
>>> sp.Popen("./deneme")
<subprocess.Popen object at 0x7fd92b19b748>
>>> Hello World! #Bu deneme programıyla ilgili. E. K.'un ortasına yazdırıyor
>>>
Bu arada deneme
sizin compile.py ile derlenmiş bir python dosyası
Çıktıyı şu şekilde bir değişkene alabilirsiniz:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import subprocess
process = subprocess.Popen("./hello.py", stdout=subprocess.PIPE)
out, err = process.communicate()
print(out)
Ayrıca dosyayı ./deneme
şeklinde çalıştırmak yerine deneme
yazarak çalıştırmak istiyorsanız aşağıdaki adımları izleyin.
HOME
dizininde ismi bin
olan bir klasör oluşturun.~$ mkdir bin
deneme
dosyasını bu bin
klasörünün içine atın.~$ mv deneme ~/bin
HOME
dizinindeki .bashrc
dosyasını chmod +x
ile erişime açın.~$ chmod +x .bashrc
~$ gedit .bashrc
export PATH="$HOME/bin:$PATH"
Artık deneme
dosyasını her dizinden, komut satırına sadece deneme
yazıp sonra enter
tuşuna basarak çalıştırabilirsiniz.
Teşekkür ederim. Ama benim bildiğim başka yöntemler de var. Mesela dosyayı /bin
klasörüne atmak. Veya ~/.local/bin
içine atmak.
Bir blogunuz yok mu? Bu tarz yazıları orada da paylaşırsanız çok güzel olur.
Linux’de derlenmiş bir C dosyası Windows’ta çalışır mı? Linux’de derlenen C dosyasının uzantısı ne?
Doğru söylüyorsunuz. Birden fazla yöntemi var.
Bir bloğum yok. Denk geldikçe paylaşımlar yapıyorum.
Linux’te derlenmiş bir C dosyası Windows’ta çalışır mı şimdilik bilmiyorum. Hiç denemedim. Ama denerim. Linux’te derlenen c dosyasının uzantısı yok.
O zaman Windows’ta çalışmamalı. Ben Windows kullanırken 2 gün C compiler aradım. Cygwin dışında bir şey bulamadım. Sonunda dayanamayıp Linux’e geçtim.
Cygwin olur, mingw olur… Yanılmıyorsam mingw git ile birlikte geliyordu. Git de kurabilirsiniz.
For the beginning I would say it is enough to Install MinGW. If you have installed it you find in the bin folder a gcc.exe which is the Compiler. Either set the PATH Variable to the bin folder or go directly to this folder. In terminal use:
gcc your_C_file.c
The output will be an exe.
Buraya göre Windows’ta derlenen C dosyaları Windows oluyormuş. Cython ile dönüştürüp Windows’ta derlersek EXE olacağına göre, Pyinstaller ne işe yarıyor?
Pyinstaller da exe’ye çeviriyor.
Yani benim dediğim gibi yapabiliyorsak neden Pyinstaller kullanıyoruz? Bir eksiği olmalı ki Pyinstaller kullanıyoruz. Bu eksikten bahsediyorum.
Pyinstaller, kolaylık sağlayan bir kütüphane. Derlemek istediğiniz dosyanın bazı özelliklerini pyinstaller sayesinde hızlıca belirleyebiliyorsunuz. Windows’ta bir python dosyasını gcc’yi kullanarak Linux’te derlediğimiz gibi derleyemiyoruz. (Bknz: Python programınızı platformlararası olacak şekilde derlemek) Neden pyinstaller sıkça tercih ediliyor, çünkü python kullanıcısına aşina olduğu bir spec dosyası sunarak py dosyalarının kısa zamanda kolayca derlenmesini sağlıyor.
yalnız bu kod bağlandığımız wifiyi gösteriyor
nasıl yani?
derlenmiş derken?
anlayamadım pythonu gcc ile derleyebiliyor muyuz?