美文网首页
Python实战1-遍历文件并将内容写入目标文件

Python实战1-遍历文件并将内容写入目标文件

作者: Jacob_LJ | 来源:发表于2018-06-19 20:10 被阅读43次

    Python实践

    目的:读取文件夹内的100+篇 txt 文件内容,按要求写入到目标文件中

    场景

    1. 所在的公司每天都要发布工作日报,到现在已经积累了约155篇
    日志格式:
    
    【iOS-xxxx】日报(6月19日)周一
    一、工作计划
    1、项目 xxx v1.4.0 (发布时间2018年07月10日)
    
    二、今日工作:
    1、fix bug (1个)
    2、优化xxx
    3、演示xxx demo
    
    三、明日计划:
    1、需求分析 xxx
    2、预研xxx 
    
    1. 基于简单的日报格式,结合自身硬件条件,平时会选择 Mac 的备忘录作为记录工具,其优点是:自带软件、多端同步、可跨端复制粘贴等

    解决

    1. 借助 Exporter 这款免费软件,把苹果电脑 Mac OS X 系统自带的备忘录 Notes.app 里的笔记全都导出。

    启动后按照提示点击箭头,选择内容导出后的储存位置,然后就一切自动完成了,速度非常快。最终结果是一个大文件夹里的 N 多个 .txt 文本文件,每个文件名都是对应的那条笔记的标题,内容则是笔记正文,文件的创建时间是那条笔记的创建时间(对,不是导出时间)。

    Exporter 在苹果 Mac App Store 应用商店的下载地址:https://itunes.apple.com/cn/app/exporter/id1099120373?mt=12

    1. 编写代码:
    
    import os
    
    from_dir = "/Users/jacob/Desktop/xxx/工作日志记录" #文件夹目录
    target_file_path = "/Users/jacob/Desktop/xxx/test.txt"
    
    def filetime(file):
        stat_file = os.stat(from_dir + "/" + file)
        last_access_time = stat_file.st_mtime
        return last_access_time
    
    # 获取 from_dir 文件夹下所有文件名
    files = os.listdir(from_dir)
    
    # 排序按修改时间排序文件名称
    files = sorted(files,key=lambda x:filetime(x),reverse=True)
    
    # # 打印 from_dir 里的文件名
    # print(files)
    
    # 遍历文件名称列表
    for filename in files:
         # 判断是否是文件夹,不是文件夹才打开
         if not os.path.isdir(filename) and filename.endswith(".txt"): # 排除 Mac.os中的.DS_stroe 隐藏文件
              # 拼接获取文件绝对路径
              f_path = from_dir + "/" + filename
              # 读取文件,将内容写入到目标文件
              # with open(f_path, "r", encoding="utf-8", errors='replace') as from_file, open(target_file_path, "w", encoding="utf-8", errors='replace') as to_file:
              with open(f_path) as from_file, open(target_file_path, "a") as to_file:
                   # 获得读取内容
                   from_contents = from_file.read()
                   # 拼接文件夹名 内容 和 换行
                   from_contents = filename + "\n" + from_contents + "\n\n" + ("-" * 30) + "\n\n\n"
                   # 将内容写入到目标文件中
                   to_file.write(from_contents)
    
    print("完了完了")
    
    

    上述代码注意点:

    • 通过 with 语句打开文件,减少 close 调用
    • 文件权限的使用
    • 注意 Mac 隐藏文件导致的读取失败(.DS_stroe)

    总结

    虽然需求很简单,但从刚学习 python 的角度来看,自己对很多的方法或功能的调用并不熟练,这些都是需要通过实践练习才能获得的技能。所以后续自己会多点从实际场景方面去学习 Python 和 使用 Python。

    ps:多谢你的阅读,希望对你有所帮助。

    相关文章

      网友评论

          本文标题:Python实战1-遍历文件并将内容写入目标文件

          本文链接:https://www.haomeiwen.com/subject/ravaeftx.html