我正在尝试检查输入以查看它是否有任何扩展名,这是我使用的代码:
df1.loc[:,'E'] = df1['A']*3
print(df1)
A B C E
a 1 2 3 3
b 4 5 6 12
c 7 8 9 21
然而,即使输入以完全停止结束,这也会返回“有” 有没有办法检查输入是否有“。”之后的任何字母? 我无法指定扩展应该是什么(因为它取决于用户),只是应该有一个扩展名。
答案 0 :(得分:2)
一个简单的选择是检查"。"在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")
这不允许"文件..",但会允许" file。,"。如果您只想允许包含字母的扩展,则应该使用正则表达式。例如,您可以尝试以下操作:
import re
m = re.match('[a-z]*\.[a-z]+', filename)
if m:
print("there is")
这将允许" file.txt",但不允许" a.b.c"。正则表达式非常灵活,可以扩展此方法以检查非常具体的名称格式。
答案 1 :(得分:0)
我使用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解决这个问题可能不是最优雅的方法,但它涵盖了您的问题的基础知识,而不会过于花哨。
答案 2 :(得分:0)
将字符串拆分在点上并检查其后是否有任何内容。
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')