<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yusuf KOÇ &#187; os modül</title>
	<atom:link href="http://www.ysfkc.com/tag/os-modul/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ysfkc.com</link>
	<description>Php Günlüğü</description>
	<lastBuildDate>Fri, 23 Jul 2010 16:39:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Python OS modülü ile dizin içindeki dosyaları silme</title>
		<link>http://www.ysfkc.com/python/python-os-modulu-ile-dizin-icindeki-dosyalari-silme.html</link>
		<comments>http://www.ysfkc.com/python/python-os-modulu-ile-dizin-icindeki-dosyalari-silme.html#comments</comments>
		<pubDate>Sun, 25 May 2008 00:33:54 +0000</pubDate>
		<dc:creator>Raiden</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[dizin silme]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[os modül]]></category>

		<guid isPermaLink="false">http://www.ysfkc.com/?p=9</guid>
		<description><![CDATA[Dün bir müşterim aradı ve çok uzunca süre kontrol etmediği bir emailinde yirmi bin adet mail olduğunu ve bunların tek tek silemeyeceğini belirterek benden destek almak istedi. Müşterimin bu isteğini yerine getirmek için hemen ilgili sunucuma ssh ile bağlandım. Aşağıdaki komutu vererek işlem yapmak istediğim dizine geçiş yaptım. cd /var/qmail/mailnames/site.com/mail_adi/Maildir bu komut ile müşterimin mail [...]]]></description>
			<content:encoded><![CDATA[<p>Dün bir müşterim aradı ve çok uzunca süre kontrol etmediği bir emailinde yirmi bin adet mail olduğunu ve bunların tek tek silemeyeceğini belirterek benden destek almak istedi.</p>
<p>Müşterimin bu isteğini yerine getirmek için hemen ilgili sunucuma ssh ile bağlandım. Aşağıdaki komutu vererek işlem yapmak istediğim dizine geçiş yaptım.</p>
<p><span id="more-9"></span></p>
<p><strong>cd /var/qmail/mailnames/site.com/mail_adi/Maildir</strong></p>
<p>bu komut ile müşterimin mail dizinine geçiş yaptım. Ardından yirmi bin adet maili silmek için aşağıdaki komutu verdim.</p>
<p><strong>rm -rf cur/*</strong></p>
<p>Bu komut normal de cur dizini altındaki bütün alt dizin ve dosyaları silmesi gerekir. Fakat dosya çokluğundan olsa gerek too long hatası ile karşılaştım.</p>
<p>Ben de araştırmaya vaktim olmadığı için oturup bir python betiği yazdım. Yazdığım bu betik belirtilen dizin içindeki tüm alt dizin ve dosyaları siliyor.</p>
<p>dosyamız: sil.py</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># Bu betik *nix türevi işletim sistemlerinde belirtilen dizindeki</span>
<span style="color: #808080; font-style: italic;"># tüm alt dizin ve dosyaları siler. Betikden doğacak herhangi bir problemden</span>
<span style="color: #808080; font-style: italic;"># betik yazarı sorumlu tutulamaz.</span>
<span style="color: #808080; font-style: italic;">#</span>
<span style="color: #808080; font-style: italic;"># Yazar: Yusuf KOÇ ( Raiden ) &amp;lt; yusufkoc at ayva dot net &amp;gt;</span>
<span style="color: #808080; font-style: italic;"># www.ysfkc.com</span>
<span style="color: #808080; font-style: italic;"># Silme işlemini yapacak olan fonksiyonumuzu tanımlıyoruz.</span>
<span style="color: #ff7700;font-weight:bold;">def</span> sil<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
    <span style="color: #808080; font-style: italic;"># OS modülümüzü import ediyoruz.</span>
    <span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">os</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Dizin ayracımızı (seperator) belirtiyoruz.</span>
    sep = <span style="color: #483d8b;">'/'</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Kullanıcıdan silmek istediği dizini isteyeceğiz ve dizin adlı değişkene</span>
    <span style="color: #808080; font-style: italic;"># eşitleyeceğiz.</span>
    dizin = <span style="color: #008000;">raw_input</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Lütfen Alt Dizin ve Dosyaları Silmek İstediğiniz Dizinin Adını Giriniz: &quot;</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Girilen değerin gerçek bir dizin olup olmadığını kontrol et</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">path</span>.<span style="color: black;">isdir</span><span style="color: black;">&#40;</span>dizin<span style="color: black;">&#41;</span> == <span style="color: #008000;">True</span>:
&nbsp;
        <span style="color: #808080; font-style: italic;"># Kullanıcıya bir bildirim yapılıyor</span>
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Dosyalar Siliniyor Lütfen Bekleyiniz...&quot;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Yukarıdaki if koşulunda eğer girilen dizin gerçek valid bir dizin ise</span>
        <span style="color: #808080; font-style: italic;"># döngüye gir, alt dizin ve dosyaları sil</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> x <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #dc143c;">os</span>.<span style="color: black;">listdir</span><span style="color: black;">&#40;</span>dizin<span style="color: black;">&#41;</span>:
            <span style="color: #dc143c;">os</span>.<span style="color: black;">remove</span><span style="color: black;">&#40;</span>dizin + sep + x<span style="color: black;">&#41;</span>
&nbsp;
        <span style="color: #808080; font-style: italic;"># Döngü bitiminde Kullanıcıya işlem sonucu bildiriliyor</span>
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Dosyalar Silindi.&quot;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;"># Eğer kullanıcıdan alınan değer gerçek bir dizin değilse uyarıyoruz</span>
    <span style="color: #ff7700;font-weight:bold;">else</span>:
        <span style="color: #ff7700;font-weight:bold;">print</span> <span style="color: #483d8b;">&quot;Lütfen geçerli bir dizin adı giriniz&quot;</span>
<span style="color: #808080; font-style: italic;"># Fonksiyonumuzu çalıştırıyoruz</span>
sil<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></div></div>

<p>Açıklamaları betik üzerinde yaptım. Bu betik *nix türevleri üzerinde çalışıyor. O yüzden windows da çalışmayacaktır.</p>
<p>Kodları bir text editör ile <strong>sil.py</strong> dosya adında  kaydedip konsol da iken <strong>python sil.py</strong> komutunu vermeniz yeterli olacaktır.</p>
<p>Örnek dosyayı <a href="http://www.ysfkc.com/dosyalar/sil.rar" target="_blank">buradan </a>indirebilirsiniz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ysfkc.com/python/python-os-modulu-ile-dizin-icindeki-dosyalari-silme.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
