Fonksiyonda args kullanarak dizine gitme

Öncelikle herkese iyi forumlar.
İşletim sistemine göre değer olarak verilen klasörlere giden bir fonksiyon yazmaya çalışıyorum fakat dizine gitmiyor çözemedim yardımcı olursanız çok teşekkür ederim.
Kod(fonksiyon):

def linuxorwin(*args):
    git = ""
    if os.name == "posix":
        for i in args:
            git.join(f"/{i}")
        print(git)
        os.chdir(os.getcwd()+git)
    elif os.name == "nt":
        for i in args:
            git.join(f"\\{i}")
        print(git)
        os.chdir(os.getcwd()+git)

Kod(çağırma):

w = os.getcwd()
linuxorwin("Executable","Python")
os.system(f"pyinstaller --onefile {file}")
print(os.getcwd())
tkinter.messagebox.showinfo("Python => exe","python script convert exe")
os.chdir(w)

Tam olarak sorunu tespit edemedim ama sanırım dizin ismi oluştururken hata oluyor. Onun yerine dahili os.path.join fonksiyonu işinizi görür. Ve kod linux üzerinde çalışıyor, test ettim.

import os

def linuxorwin(*args):
    git = os.path.join(os.getcwd(),*args)
    os.chdir(git)

temp = os.getcwd()

linuxorwin("Executable","Python")
print(os.getcwd())

os.chdir(temp)
print(os.getcwd())
1 Beğeni

Hocam linuxorwin fonksiyonuna *args ile girilen değerlere gitmek istiyorum ve klasör hazırda bulunuyor.
Mesela benim /home/wormer/ dizinindeyim ve fonksiyona Executable ve Python klasörlerini girip gitmek istiyorum fakat gitmiyor ve python exe dosyasını aynı dizine oluşturuyor ben bunu yapamadım.
Mesela ben /home/wormer klasöründeyim ve:

Bunu kullanarak:

/home/wormer klasöründen /home/wormer/Executable/Python klasörüne gitmek istiyorum fakat başarılı olamadım.

Tamam işte hocam. Benim yazdığım fonksiyon tam sizin istediğiniz şeyi yapıyor. Fonksiyonu kopyalayıp denediniz mi?

def linuxorwin(*args):
    git = os.path.join(os.getcwd(),*args)
    os.chdir(git)

linuxorwin("Executables","Python") yazdığınızda bu alt klasörlere geçiş yapıyor, Linux’da test ettiğimde çalışıyor. /home/coderistan dizinindeyken /home/coderistan/Executables/Python klasörüne geçiş yapıyorum.

1 Beğeni