一直一直一直开心 2023-07-02 15:41 采纳率: 80%
浏览 34
已结题

我有多个txt文本例如1.txt 如何用代码统计我需要统计每个文本中数字出现的频数,并生成excel表格形式文本形式如下:

我有多个txt文本例如1.txt 如何用代码统计
我需要统计每个文本中数字出现的频数,并保存为excel表格形式
文本形式如下:

img

需要统计每个数字出现的频数,保存为xlsx 格式如何用python写

  • 写回答

3条回答 默认 最新

  • 梦幻精灵_cq 2023-07-02 18:55
    关注

      遍历多个*.txt文本列表,依次统计数字出现频次,将统计以*.txt为标签追加写入目标文本文件。由于我的python 环境没有成功pip pandas ,就把统计结果写入csv文本文件了。我不太看明白您是要写成一个文件不是分别统计成单独表格。先写入一个文件count.txt,后改代码为各个统计了。


    • 随机生成十个数字文本

      img


      img

    • python 代码
    #!/sur/bin/nve python
    # coding: utf-8
    from random import choice
    
    
    mypath = '/sdcard/001/num001/'
    
    def write_numfile(filename):
        ''' 随机写入100个整数 '''
        nums = range(5001)
        
        with open(filename, 'w') as f:
            
            for i in range(100):
                f.write(f"{choice(nums)}\n") 
    
    
    def main():
        
        for i in range(1, 11): # 生成10随机文本文件。
            write_numfile(f"{mypath}{i:0>3}.txt")
    
    
    
    if __name__ == '__main__':
        main()
    
    • 循环遍历轮询文本文件,统计数字

      img

    • python 代码
    def count_num(filename):
        ''' 统计文本中的数字 '''
        
        with open(filename) as f: # 读取文本。
            text = f.read()[:-1]
    
        count_dict = {} # 数字统计字典。
        for i in text.split('\n'): # 遍历轮询文本数字统计出现频次。
            count_dict[i] = count_dict.get(i, 0) + 1
        
        count = [(num, count) for num,count in count_dict.items()] # 列表解析统计字典数据。
        count.sort(reverse=True, key=lambda x: x[1])
        
        with open(f"{mypath}count.txt", 'a') as f:
            f.write(f"\n{filename}\n")
            
            for num,k in count:
                f.write(f"{num}: {k}\n")
    
    
    
    def main():
        
        for i in range(1, 11): # 生成10随机文本文件。
            write_numfile(f"{mypath}{i:0>3}.txt")
    
        for i in range(1, 11): # 生成10随机文本文件。
            count_num(f"{mypath}{i:0>3}.txt")
    
    
    if __name__ == '__main__':
        main()
    
    
    • 各个文档单独统计代码
    
        
        with open(f"{filename[:-4]}_count.txt", 'w') as f:
            f.write(f"数字,出现频次")
            
            for num,k in count:
                f.write(f"\n{num},{k}")
    
    
    
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月11日
  • 已采纳回答 7月3日
  • 修改了问题 7月2日
  • 创建了问题 7月2日

悬赏问题

  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急