我試圖檢查輸入,看是否有任何擴展這裏是我使用的代碼:如何使用通配符在python來檢查任何擴展
filename=input()
if "." in filename:
print ("There is")
然而這將返回「有「即使輸入只是完全停止。
有沒有辦法檢查輸入是否有「。」後面的任何字母? 我不能指定擴展應該是什麼(因爲它取決於用戶),只是應該有一個擴展。
我試圖檢查輸入,看是否有任何擴展這裏是我使用的代碼:如何使用通配符在python來檢查任何擴展
filename=input()
if "." in filename:
print ("There is")
然而這將返回「有「即使輸入只是完全停止。
有沒有辦法檢查輸入是否有「。」後面的任何字母? 我不能指定擴展應該是什麼(因爲它取決於用戶),只是應該有一個擴展。
一個簡單的選擇是檢查「。」在filename
去掉最後一個字符:
if len(filename)>1 and "." in filename[:-1]:
print("there is")
這將使「文件...」,這可能是也可能不是你想要的。另一個想法是,在每個「。」分割filename
。並檢查你至少兩個部分,其中最後一個非空:
parts = filename.split(".")
if len(parts) > 1 and parts[-1]:
print("there is")
這將不會允許「文件..」,但將允許「文件。」如果你只想允許由字母組成的擴展名,你應該使用正則表達式。例如,你可以嘗試以下方法:
import re
m = re.match('[a-z]*\.[a-z]+', filename)
if m:
print("there is")
這將使 「file.txt的」,而不是 「A.B.C」。正則表達式非常靈活,可以擴展這種方法來檢查相當具體的名稱格式。
你也可以使用'」。 「在filename.rstrip('。')'中。 – Carpetsmoker
我用find
函數找到字符.
在me
。如果該字符不存在於me
中,則該函數返回-1
。然後,用.
字符的索引,我看到是否有任何字符在len(me[index + 1:])
之後。如果len
函數返回一個正數,那麼您知道.
字符後面有字符。
me=input()
index = me.find(".")
if (index != -1 and len(me[index + 1:]) > 0):
print ("There is")
它可能不是與Python來解決這個最優雅的方式,但它涵蓋了你的問題的基礎知識沒有得到太花哨。
分割點上的字符串並檢查後面是否有任何東西。 [Python中提取從文件擴展名]的
s = 'aaa.'
if s.strip().split('.')[-1]:
print('extension')
else:
print('no extension')
s = 'aaa.bbb'
if s.strip().split('.')[-1]:
print('extension')
else:
print('no extension')
可能的複製(http://stackoverflow.com/questions/541390/extracting-extension-from-filename-in-python) – rfkortekaas