Şunlardan birine benzer bir dosya ismim varsa:
1.1.1.1.1.jpg
1.1.jpg
1.jpg
Uzantı olmadan yalnızca dosya adını nasıl alabilirim? Normal ifade uygun olur mu?
Şunlardan birine benzer bir dosya ismim varsa:
1.1.1.1.1.jpg
1.1.jpg
1.jpg
Uzantı olmadan yalnızca dosya adını nasıl alabilirim? Normal ifade uygun olur mu?
Yanıtlar:
Çoğu durumda, bunun için bir normal ifade kullanmamalısınız.
os.path.splitext(filename)[0]
Bu aynı zamanda .bashrctam adı koruyarak bir dosya adını doğru şekilde işleyecektir .
basename[:-len(".tar.gz")].
git-1.7.8.tar. Arayanın kaç noktayı çıkarmak istediğini doğru bir şekilde tahmin etmenin bir yolu yoktur, bu nedenle splitext()yalnızca sonuncuyu çıkarır. Bu gibi uç durumları halletmek istiyorsanız .tar.gz, bunu elle yapmanız gerekir. Açıkçası, tüm noktaları kaldıramazsınız, çünkü sonunuz olacak git-1.
>>> import os
>>> os.path.splitext("1.1.1.1.1.jpg")
('1.1.1.1.1', '.jpg')
Bunu bir normal ifadeyle yapmak zorunda olsaydım, şöyle yapardım:
s = re.sub(r'\.jpg$', '', s)
Dosya adını almak için stem yöntemini kullanabilirsiniz .
İşte bir örnek:
from pathlib import Path
p = Path(r"\\some_directory\subdirectory\my_file.txt")
print(p.stem)
# my_file