📅  最后修改于: 2023-12-03 15:19:10.676000             🧑  作者: Mango
在 Python 中,我们可以使用 os.path
模块来获取文件的路径和名称等信息,然后通过字符串方法来获取文件的扩展名,最后进行判断从而实现检查文件扩展名的功能。
下面是一个简单的例子:
import os
def check_extension(file_path, extension):
"""检查指定文件的扩展名是否为指定的扩展名。
返回 True 或 False。
"""
_, file_ext = os.path.splitext(file_path)
return file_ext == extension
if __name__ == '__main__':
file_path = '/path/to/file.txt'
extension = '.txt'
if check_extension(file_path, extension):
print(f'{file_path} has extension {extension}.')
else:
print(f'{file_path} does not have extension {extension}.')
在上面的代码中,我们使用了 os.path.splitext()
函数来分割文件路径和文件扩展名,在得到文件扩展名之后,我们再通过字符串比较的方法来判断文件的扩展名是否与指定扩展名一致。
我们也可以通过 argparse
模块来实现命令行参数的设置,从而在命令行中运行该脚本时可以输入文件路径和扩展名等信息。
import os
import argparse
def check_extension(file_path, extension):
"""检查指定文件的扩展名是否为指定的扩展名。
返回 True 或 False。
"""
_, file_ext = os.path.splitext(file_path)
return file_ext == extension
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='检查文件的扩展名。')
parser.add_argument('file_path', help='文件路径。')
parser.add_argument('-e', '--extension', help='指定的扩展名。')
args = parser.parse_args()
if not os.path.isfile(args.file_path):
print(f'{args.file_path} 不是一个文件。')
elif args.extension is None:
print(f'文件 {args.file_path} 的扩展名为 {os.path.splitext(args.file_path)[1]}')
else:
if check_extension(args.file_path, args.extension):
print(f'{args.file_path} has extension {args.extension}.')
else:
print(f'{args.file_path} does not have extension {args.extension}.')
在上面的代码中,我们使用了 argparse
模块来设置命令行参数。其中,parser.add_argument()
函数用于设置需要的参数,parser.parse_args()
函数用于解析命令行参数。
在输入命令行参数时,我们可以使用 -e
或 --extension
来指定文件扩展名。如果不输入该参数,则程序会自动输出文件的扩展名。如果文件不存在,则会输出一个错误提示。