python kullanarak yol x
yolunda bir dosya oluşturmak istiyorum. y = 'touch %s' % (x)
adresinde os.system(y)
kullanıyorum. os.mkdir
'un dizin dışı bir sürümünü aradım ancak hiçbir şey bulamadım. Açmadan veya sistem veya popen/alt işlem kullanmadan dosya oluşturmak için böyle bir araç var mı?python kullanarak boş dosya oluşturma
cevap
o
açmadan bir dosya oluşturmak için bir yolu yoktur (ama OSX kök ayrıcalıkları gerektirir). Bir dosya oluşturmaya yönelik sistem çağrısı, os.mknod("newfile.txt")
yoktur
O_CREAT
bayrağına sahip aslında open()
'dur. Ne olursa olsun, her zaman dosyayı açacaksın. CPython ait refcounting GC open()
deyiminden sonra hemen kapanacak beri
open(x, 'a').close()
Eğer .close()
ihmal olabilir:
Yani basitçe varolduğundan ihtimaline karşı kesmeden bir dosya oluşturmak için en kolay yolu şudur bitmiş - ama bunu açıkça yapmak ve CPython'a özgü davranışlara güvenmek daha iyidir.
import os
def touch(path):
with open(path, 'a'):
os.utime(path, None)
Ayrıca mevcut olmayan yolda bir dizin oluşturmak için bu genişletmek olabilir
:
durumdasen (yani dosya var durumunda mtime güncelleştirmek) touch
davranışlarını istiyorum
basedir = os.path.dirname(path)
if not os.path.exists(basedir):
os.makedirs(basedir)
İyi görünüyor ... "Kesin" aslında "açık", değil mi? – tkbx
Evet, 'w' (write) bayrağıyla bir dosya açıldığında 'a' (append) ile açılmadan onu boşaltır. – ThiefMaster
Dosyayı kapatmanın hemen reddedilmesi güvenilmez. Refcounting sadece bir uygulama detayı olduğundan, bu bir temizlik meselesi değildir. CPython dışında Python yok. Programınızı PyPy ile beş kat daha hızlı hale getirmek veya Jython/IronPython ile bir Java/.NET ortamında çalıştırmak mı istiyorsunuz? Bu dosyaları kapatmadığın için çok kötü, şimdi programın bir süzgeç gibi sızıyor;) Özellikle 2'den beri korkunç.5, 'ile' yapar gibi * daha kolay * dosyayı zamanında kapatmak (hatta istisnalar ve dairesel referanslar karşısında) ** ve ** kod önyükleme için daha net hale gelir. – delnan
Tabii ki açmadan dosya oluşturmanın bir yolu var. os.mknod("newfile.txt")
'u çağırmak kadar kolay. Tek dezavantajı, bu çağrının OSX'te root ayrıcalıklarına sahip olması.
Harika bir nokta. Ayrıca bkz. Https://docs.python.org/3/library/os.html – poolie
- 1. Python kullanarak dosya işleme
- 2. Phonegap'i kullanarak Sdcard'ta dosya oluşturma
- 3. C# textwriter yerine memorystream kullanarak dosya oluşturma
- 4. python kullanarak bir Postgre veritabanı oluşturma
- 5. python, boto3 kullanarak Amazon S3 dizinleri oluşturma
- 6. Python: Döngüyü kullanarak bilinmeyen sayıda değişken oluşturma
- 7. Boş bir kart oluşturma
- 8. Sabre Oluşturma Boş PNR
- 9. Python kullanarak klasör/dosya ntfs izinlerini denetleme
- 10. Python kullanarak Soundcloud'a dosya nasıl yüklenir?
- 11. Dosya yolunu python kullanarak düzgün kodlayın
- 12. Python altprocess popen kullanarak dosya sistemi yüklenemedi
- 13. Düz dosya veritabanı oluşturma
- 14. file_put_content boş dosya oluşturur
- 15. Boş cookiejar kullanarak SUDS
- 16. Python Dosyaları indir, ancak boş mu?
- 17. Python oluşturma/açma sistemi
- 18. pygit2 kullanarak bir görünüm oluşturma
- 19. PngBitmapEncoder bir "boş" dosya yaratıyor
- 20. python boş hata iletisi
- 21. python boş bağımsız değişken
- 22. Eşzamansız bir dosya oluşturma
- 23. Arama yollarına ve dosya adlarına dosya oluşturma?
- 24. Python: Dizinler oluşturma
- 25. Metin Belgesi Oluşturma (Python)
- 26. python benzersiz dize oluşturma
- 27. heredoc kullanarak yeni bir metin dosyası oluşturma
- 28. CRLF satır sonlandırıcıları olmadan Nodejs'de Dosya Oluşturma
- 29. Python/Django boş sorguları döndürüyor
- 30. python: boş olmayan yönergeleri sil
Neden kötü açılıyor? –
@LevLevitsky çünkü tekrar kapatmam gerekecek: P. Binlerce dosya oluşturmalıyım ve sadece dosyaya dokunmak daha temiz görünüyor. – tkbx
FYI, bunun için bir dış komut kullanılırken, her zaman kötüyse, bunu gerçekleştirmenin uygun yolu "subprocess.call" (['touch', x]) ' – ThiefMaster