MST

星途 面试题库

面试题:Python结合位置实参和任意数量实参的复杂逻辑实现

假设你有一个Python函数,它接受一个位置实参表示文件路径,另一个位置实参表示文件类型(如 'txt'、'csv' 等),同时接受任意数量的关键词作为实参。如果文件类型是 'txt',函数需要读取文件内容并检查是否包含所有传入的关键词;如果是 'csv',则读取csv文件内容,并统计每个关键词出现的行数。请实现这个函数。
35.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import csv


def read_file(file_path, file_type, **kwargs):
    if file_type == 'txt':
        with open(file_path, 'r', encoding='utf-8') as f:
            content = f.read()
            for key in kwargs.keys():
                if key not in content:
                    return False
            return True
    elif file_type == 'csv':
        keyword_count = {key: 0 for key in kwargs.keys()}
        with open(file_path, 'r', encoding='utf-8') as f:
            reader = csv.reader(f)
            for row in reader:
                for key in kwargs.keys():
                    if key in ' '.join(row):
                        keyword_count[key] += 1
        return keyword_count
    else:
        raise ValueError("Unsupported file type")