Python ile Masaüstü Konumunu Bulma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

DarknessGuardian

Katılımcı Üye
29 Ağu 2015
728
0
Merhaba arkadaşlar,
Elimde arkadaşlar ile eğlenmek için yazdığım ufak bir script var. Python ile yazdığım bu script de yapmaya çalıştığım şey çalıştıranın masaüstüne binlerce .txt dosyası açmak. Tek sıkıntım her bilgisayarın Desktop yolu farklı olması. Buyrun kodum böyle:

Kod:
import os
for i in range(0, 10):    
    os.chdir("C:\Users\*****\Desktop")
    dosya = open("***"+str(i)+".txt","w")
    dosya.write("***************!!!")
    dosya.close()
Sorum bu Usersdan sonra *****ladığım kısım yerine her bilgisayarda kendi kullanıcı adını girmek. Bunu nasıl yapabilirim? Fikriniz var mı?
 

Anonim6

Yeni üye
29 Şub 2012
0
5
Ustam, kodunuzda basit ancak kod bütünlüğünü bozan bir parça var, onu hemen düzenleyelim. Bildiğimiz üzere, genel olarak programlama dillerinde "Kaçış Dizileri" olarak adlandırdığımız, özel anlamlara sahip olan ifadeler vardır. Burada, 3. satırda yer alan string değişkenin içinde bir kod parçacığı var.
Kod:
[COLOR="White"]--- snip ---
os.chdir("C:[COLOR="Red"]\U[/COLOR]sers\....")
--- snip ---[/COLOR]
Burada, "\U" ifadesini Python yorumlayıcısı bir kaçış dizisi olarak yorumlar, ve özel bir mana çıkartmak ister. Fakat uygun olmadığından dolayı, orada yorumlayıcı kırılır ve script'den çıkış yapılmış olur. Burada, "\U" ile bir Unicode ifadesi senden bekler kısaca. Buna engel olmak için, double-backslash ("\\") kullanabilirsin. Karşılığı tek backslash ("\") olacaktır. Yani, string değişkenini - dizini şu şekilde düzenle;
Kod:
[COLOR="White"]C:\\Bir\\Windows\\Dizini[/COLOR]
Bu sayede, yorumlayıcı o kısmı bir kaçış dizisi olarak yorumlamaz ve yoluna devam eder. Bunlar küçük, ancak scriptin akışını etkileyen hatalardır ustam. İyi forumlar dilerim, ellerinize sağlık. Heh, sorunuzu yeni gördüm. Kullanıcının namı değer "Home" dizinini almak için, aşağıdaki gibi bir kod parçacığı kullanabilirsiniz;
Kod:
[COLOR="White"]>>> import os.path
>>> os.path.expanduser("~")
'C:\\Users\\hp'[/COLOR]
 
Son düzenleme:

DarknessGuardian

Katılımcı Üye
29 Ağu 2015
728
0
Ustam, kodunuzda basit ancak kod bütünlüğünü bozan bir parça var, onu hemen düzenleyelim. Bildiğimiz üzere, genel olarak programlama dillerinde "Kaçış Dizileri" olarak adlandırdığımız, özel anlamlara sahip olan ifadeler vardır. Burada, 3. satırda yer alan string değişkenin içinde bir kod parçacığı var.
Kod:
[COLOR=White]--- snip ---
os.chdir("C:[COLOR=Red]\U[/COLOR]sers\....")
--- snip ---[/COLOR]
Burada, "\U" ifadesini Python yorumlayıcısı bir kaçış dizisi olarak yorumlar, ve özel bir mana çıkartmak ister. Fakat uygun olmadığından dolayı, orada yorumlayıcı kırılır ve script'den çıkış yapılmış olur. Burada, "\U" ile bir Unicode ifadesi senden bekler kısaca. Buna engel olmak için, double-backslash ("") kullanabilirsin. Karşılığı tek backslash ("") olacaktır. Yani, string değişkenini - dizini şu şekilde düzenle;
Kod:
[COLOR=White]C:\\Bir\\Windows\\Dizini[/COLOR]
Bu sayede, yorumlayıcı o kısmı bir kaçış dizisi olarak yorumlamaz ve yoluna devam eder. Bunlar küçük, ancak scriptin akışını etkileyen hatalardır ustam. İyi forumlar dilerim, ellerinize sağlık. Heh, sorunuzu yeni gördüm. Kullanıcının namı değer "Home" dizinini almak için, aşağıdaki gibi bir kod parçacığı kullanabilirsiniz;
Kod:
[COLOR=White]>>> import os.path
>>> os.path.expanduser("~")
'C:\\Users\\hp'[/COLOR]

Çok teşekkür ederim tam aradığım şey buydu. Backslah olayı için de ayrıca tekrar teşekkür ederim.
 
5 Ocak 2013
185
0
Kod:
import winpaths
desktop = winpaths.get_desktop()
a = 1
while True:
    metin = open("%s/THT%s.txt" %(desktop, a),"w")
    metin.write("THT")
    metin.close()
    a=a+1

Şimdi yazdım kodu.
"winpaths" Modülünü indir kolayca bulursun.
Python 2.7
 

DarknessGuardian

Katılımcı Üye
29 Ağu 2015
728
0
Kod:
import winpaths
desktop = winpaths.get_desktop()
a = 1
while True:
    metin = open("%s/THT%s.txt" %(desktop, a),"w")
    metin.write("THT")
    metin.close()
    a=a+1
Şimdi yazdım kodu.
"winpaths" Modülünü indir kolayca bulursun.
Python 2.7

Winpaths modülüne de bakıyorum şuan ama ben üstteki arkadaşın da saolsun yardımlarıyla böyle bir şey yazmıştım.
Kod:
import os, os.path

for i in range(0, 100000):
    path = os.path.expanduser("~")
    os.chdir(path+"\\********s")
    dosya = open("THT"+str(i)+".txt","w")
    dosya.write("**** The System!!!")
    dosya.close()

Bunu denemek için kendi bilgisayarımda çalıştırdım ve hala silmeye çalışıyorum dosyaları :D
 
5 Ocak 2013
185
0
Winpaths modülüne de bakıyorum şuan ama ben üstteki arkadaşın da saolsun yardımlarıyla böyle bir şey yazmıştım.
Kod:
import os, os.path

for i in range(0, 100000):
    path = os.path.expanduser("~")
    os.chdir(path+"\\********s")
    dosya = open("THT"+str(i)+".txt","w")
    dosya.write("**** The System!!!")
    dosya.close()

Bunu denemek için kendi bilgisayarımda çalıştırdım ve hala silmeye çalışıyorum dosyaları :D

Kod:
import os
desktop = os.path.expanduser("~")
a=1
while True:
    metin = open("%s/desktop/THT%s.txt" %(desktop, a), "w")
    metin.write("THT")
    metin.close()
    a = a+1

Buda arkadaşın verdiği yöntem ile, bende ilk paylaştığım kodu açtım 3 saniye açık kaldı baktım birşey gelmiyor masaüstüne yanlış kodladım herhalde dedim kapadım çalışma ekranını, 5 sn sonra ekran THT THT THT metin belgeleriyle doldu masaüstü bende bilgisayardan masaüste girip ilk metin belgesine tıklayıp son metin belgesine shift ile tıkladım ancak öyle sildim 23 bin tane metin belgesi açmış 3 sn yede :D
 

Black Viking

Kıdemli Üye
13 Şub 2016
2,005
1
[vkng@vkng~]
Kod:
import os
desktop = os.path.expanduser("~")
a=1
while True:
    metin = open("%s/desktop/THT%s.txt" %(desktop, a), "w")
    metin.write("THT")
    metin.close()
    a = a+1
Buda arkadaşın verdiği yöntem ile, bende ilk paylaştığım kodu açtım 3 saniye açık kaldı baktım birşey gelmiyor masaüstüne yanlış kodladım herhalde dedim kapadım çalışma ekranını, 5 sn sonra ekran THT THT THT metin belgeleriyle doldu masaüstü bende bilgisayardan masaüste girip ilk metin belgesine tıklayıp son metin belgesine shift ile tıkladım ancak öyle sildim 23 bin tane metin belgesi açmış 3 sn yede :D


Size Şöyle Bir Şey Eklemenizi Söyleyecektim Ama Gerek Duymadım :D

Kod:
import os
desktop = os.path.expanduser("~")
a=1
while True:
    metin = open("%s/desktop/THT%s.txt" %(desktop, a), "w")
    metin.write("THT")
    metin.close()
    a = a+1
    if a == "10";
        quit()
 

Nigella Umbreon

Katılımcı Üye
26 Nis 2016
640
0
Daha eğlenceli hale getirilebilir.
Güzel fikir, executable yapıp, binder ile kullanılabilir.
Virüs olarak da algılamaz sanırım, güzel güzel yaparım birisine aklımda bulunsun :trl
 

DarknessGuardian

Katılımcı Üye
29 Ağu 2015
728
0
Daha eğlenceli hale getirilebilir.
Güzel fikir, executable yapıp, binder ile kullanılabilir.
Virüs olarak da algılamaz sanırım, güzel güzel yaparım birisine aklımda bulunsun :trl

Teşekkürler, bu konuda herhangi bir tecrübem olmaması ve bunu sadece eğlenme amacıyla yapmam nedeniyle aklıma çok iyi bir şey gelmedi. Ancak nasıl daha eğleneclei hale getirelileceği konusunda görüşlerinizi kesinlikle bekliyorum. Bu arada executable yapmak istedim ama daha önce pythonı exe'ye çevirmeyi denemediğim için sınavlarımın arasında bu kadar zaman ayırmak istemedim. Bu hafta bitince sınavlarım da bitiyor ve bu tarz şeyler üzerinde çalışmak isterim. Bu konularda gelişmek için sizce nasıl bir yol izleyebilirim.

Not: .py halini virüs olarak algılamamıştı, ayrıca binder nedir hiçbir fikrim yok :RpS_sleep: malum yeniyiz...
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.