SORU
17 Kasım 2008, PAZARTESİ


Python için geçerli bir dosya adı dönüşmesi bir dize

Dosya adlarında izin verilmez tüm karakterleri kaldırmak istiyorum yani bir dosya adı olarak kullanmak istediğiniz bir dize, Python kullanıyorum.

Yerine başka daha sıkı olurdum, hadi sadece harfler, rakamlar ve "_-.() " gibi diğer karakter küçük bir set korumak istiyorum demek. En zarif çözüm nedir?

Dosya adı olması gerekir geçerli birden çok işletim sistemi (Windows, Linux ve Mac OS) - bir MP3 dosyası benim kütüphane ile şarkı adı olarak dosya adını ve paylaşılan ve yedeklenmiş arasında 3 makine.

CEVAP
17 Kasım 2008, PAZARTESİ


Bu beyaz liste yaklaşım (yani, izin tek karakter mevcut valid_chars) çalışır sorun yoksa sınırları biçimlendirme dosya veya birlikte geçerli karakter olan yasadışı ( " .. "), örneğin, ne derdiniz izin bir dosya isminde " . "ben Windows üzerinde geçerli değil sanırım. txt Bu en basit yaklaşım ederim deneyin kaldırmak boşluk gelen valid_chars ve önüne bir bilinen geçerli dize durumunda hata, başka bir yaklaşım olacak bilmek nedir izin nereye baş Windows file naming limitations ve bu çok daha karmaşık.

>>> import string
>>> valid_chars = "-_.() %s%s" % (string.ascii_letters, string.digits)
>>> valid_chars
'-_.() abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
>>> filename = "This Is a (valid) - filename%$&$ .txt"
>>> ''.join(c for c in filename if c in valid_chars)
'This Is a (valid) - filename .txt'

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • LatinNinja99

    LatinNinja99

    28 EKİM 2011
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011