2012-03-09 150 views
2

我想尋找一個文件名的擴展和延伸只能是3個字符長。如何查找文件名的特定部分/擴展名?

它是一樣的東西,

filename = str(input("Please enter filename: ")) 

然後我要執行任務,尋找擴展,如果擴展不符合要求(即3個字符長),我會添加打印「無效的擴展名!」否則,請打印「有效的擴展名」。

+1

你怎麼能檢查擴展是否有效,如果文件名是'一.... T#t',你不能告訴我們,如果延長有效期只有通過檢查擴展 – avasal 2012-03-09 11:33:23

+0

的3個字符長度爲什麼在這個意義上你需要文件名的擴展名是「有效的」? – 2012-03-09 11:39:19

+0

我也很好奇這個擴展檢查 - @Daria,這是一個特定的應用程序,需要特定的延伸長度,或者你假設所有文件都應該有一個擴展,它應該是一個特定的大小? – 2012-03-10 04:22:37

回答

0

這應該是你所描述的:

filename = raw_input("Please enter filename: ") #This is already a string 
if len(filename.split('.')[-1])==3: 
    print "Valid extension" 
else: 
    print "Invalid extension!" 

希望這有助於。

+0

對於'/path/my.file.ext',這將返回'文件'。使用index [-1]獲取最後一部分會更加正確,但如果沒有擴展名(例如,使用'/ path/myfile'將得到'/ path/myfile',或者使用'/ path/myfile' '/ os'會給你'/ os',它的長度爲3,並且看起來有效。 – 2012-03-10 04:17:45

+0

你說得很對,我沒有考慮沒有點或多點的輸入,謝謝指出。 – dtrujillo 2012-03-10 13:20:17

+0

我用這種方式,結果證明它的工作原理!感謝你們的幫助x – DarsAE 2012-03-20 23:00:39

0

可以「砍」它就像如果擴展總是3個caracters:

$ python2 
Python 2.7.2 (default, Jan 31 2012, 13:19:49) 
[GCC 4.6.2 20120120 (prerelease)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> x = "file.ext" 
>>> print x[-3:] 
ext 

Extracting extension from filename in Python

編輯:你可以依靠的MIME類型,而不是取決於你的需求,請參閱How to find the mime type of a file in python?

+1

這是一個不錯的選擇,但是如果文件是「file.conf」呢?它會返回'onf',這將是3個字符長的太 – 2012-03-09 11:26:47

+0

是的,這就是爲什麼我點你到另一個鏈接。迭戈·納瓦羅的片斷可以用來測試你的extention長太;) – 2012-03-09 11:30:38

+0

這不符合問題在所有幫助,因爲有一個提示,擴展名必須是通過視覺觀察編程檢查。另外,即使根本沒有擴展名,也可以返回3個字符。 – 2012-03-10 04:14:52

7
len(os.path.splitext('/foo/file.png')[1]) - 1 == 3 
+0

作爲avasal的評論暗示,一旦你有你可能也想擴展要檢查其他的東西吧,比如它是否包含您不想要的字符。 – 2012-03-10 04:20:27

+1

用於使用標準庫而不是自己(不可避免地不完整)版本的'os.path.splitext()'。 – 2012-03-27 06:09:45

相關問題