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

2018-06-19  本文已影响43人  Jacob_LJ

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("完了完了")

上述代码注意点:

总结

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

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

上一篇 下一篇

猜你喜欢

热点阅读