prfct 2024-12-22 23:03 采纳率: 0%
浏览 11

用程序读取文件 City.txt 中的信息

用程序读取文件 City.txt 中的信息(以UTF-8-SIG 编码读取)当用户输入城市名(支持模糊查找,即不区分大小写,而且可以只输入部分字符串)后,显示该城市的相关信息;继续输入,继续查找;输入"Quit()",退出查找

img

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    为了完成这个需求,你需要编写一个Python程序来读取City.txt文件并查找用户输入的城市信息。由于需要支持模糊查找和不区分大小写,你可以使用Python内置的re模块进行正则表达式匹配。以下是一个可能的实现:

    import re
    
    def read_city_info_from_file(filename):
        # 以UTF-8-SIG编码读取文件
        with open(filename, 'r', encoding='utf-8-sig') as file:
            city_info = {}
            for line in file:
                city_name, population = line.strip().split('\t')  # 根据Tab分隔信息,这里假设文件名是正确的,且文件格式与此一致
                city_info[city_name] = population  # 存储城市名和人口信息到字典中
            return city_info
    
    def search_city_info(city_info, query):
        # 模糊查找城市信息
        matches = []
        for city_name, _ in city_info.items():
            if re.search(query, city_name, re.IGNORECASE):  # 不区分大小写进行模糊匹配
                matches.append(city_name)
        return matches
    
    def display_city_info(city_name, city_info):
        population = city_info[city_name] if city_name in city_info else 'Not found!'
        print(f"{city_name} is a city in CHN, and its population is: {population}")
    
    def main():
        filename = 'City.txt'  # 文件名要求保存为Citylnfo.py中的文件名,否则视为无效作业,这里假设文件名正确且文件存在。
        city_info = read_city_info_from_file(filename)  # 读取城市信息
        while True:
            query = input("--Please enter the whole or part of a city's name (Quit() to quit): ")  # 输入城市名或Quit()退出
            if query == 'Quit()':  # 输入Quit()则退出程序
                break
            matches = search_city_info(city_info, query)  # 查找匹配的城市信息
            count = len(matches)  # 计算匹配的城市数量
            print("Count:", count)  # 输出匹配的城市数量
            for match in matches:  # 显示匹配到的城市信息
                display_city_info(match, city_info)
            print()  # 输出空行分隔不同查询结果
    
    if __name__ == '__main__':  # 确保脚本作为主程序运行时才执行main函数中的内容,避免被导入时执行。
        main()  # 运行主函数实现程序功能
    

    请注意,这个代码假设City.txt文件的格式是每行一个城市名和一个与之对应的数字(可能是人口或其他数据),两者之间用Tab分隔。此外,为了简单起见,这里直接假设文件名是City.txt且该文件存在于脚本运行的当前目录下。在实际应用中,你可能需要根据实际情况调整文件路径和读取方式。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月22日