零基础学 Python(2023 版)
尹会生
太乙人工智能技术合伙人 & 项目总监
60050 人已学习
新⼈⾸单¥68
课程目录
已完结/共 124 讲
结束语 & 结课测试 (2讲)
零基础学 Python(2023 版)
登录|注册
留言
30
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 47|小试牛刀:如何使用 Python 合并多个文件?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程介绍:这次我们都做了哪些升级?
内容综述:明确学习目的
01|如何配置 Python 开发环境?
02 | 常用 IDE:如何提高开发效率?
03 | 如何站在官方文档的肩膀上自己“造轮子”?
04 | 怎样运行你的第一行代码?
05 | 怎样使用 Gitee 管理你的代码?
06 | 学习编程有问题?去这里找答案!
07|跨越门槛:Python 开发环境总结及实现原理
08 | 修炼基本功:浅析输入输出
09 | 变量:如何让计算机临时存储数据?
10|字符串(上):Python 是如何处理单词的?
11|字符串(下):Python 是如何处理单词的?
12|存储数字应该采用哪种数据类型?
13|何时使用数,何时使用字符串?
14|注释:如何写程序的说明书?
15|小试牛刀:如何制作简单计算器?
16|变量命名规范:如何编写优雅的程序?
17|告别新手村:Python 编程基础知识
18|内置数据类型包括哪几种?
19|列表如何处理同类数据?
20|常见常新:列表的常见操作
21|元组:如何处理一次性数据?
22|常见常新:集合的常见操作
23|字典:如何处理映射类型的数据?
24|常见常新:字典的常见操作(上)
25|常见常新:字典的常见操作(下)
26|小试牛刀:如何利用类型转换实现手机通讯录?(上)
27|小试牛刀:如何利用类型转换实现手机通讯录?(下)
28|常见的内置数据类型都何时使用?
29|避坑指南:内置数据类型的常见错误
30|内置数据类型参考:如何使用官方文档与帮助?
31|再回首:“内置数据类型”单元小结
32|if 语句:数据流程出现分支时,怎样编写程序?
33|match 语句:如何通过 match 关键字来处理程序的分支逻辑?
34|while 循环:需要多次重复执行某段程序时,怎么做?
35|for 循环:如何遍历一个对象里的所有元素?
36|语句嵌套:如何处理多重循环的问题?
37|小试牛刀:如何设计一个飞机大战的程序?
38|避坑指南:判断和循环中的常见错误
39|再回首:“判断循环”单元小结
40|输入:如何接收用户通过键盘输入的数据?
41|格式化输出:如何将执行结果通过屏幕输出?
42|F-strings:如何通过定义好的格式进行输出?
43 | 常见常新:文件的打开
44|文件编码:如何解决不同操作系统的文件乱码问题?
45|常见常新:文件的读写
46|常见常新:文件的关闭
47|小试牛刀:如何使用 Python 合并多个文件?
48|再回首:“输入输出与文件操作”单元小结
49|函数的定义:如何优雅地反复引用同一段代码?
50|函数的参数:怎样实现函数与外部数据通信?
51|函数的参数:当函数操作对象不固定时怎么处理?
52|函数的返回值:如何得到函数的执行结果?
53|小试牛刀:如何利用函数实现电商购物车功能?
54|避坑指南:列表作为参数传递出错了怎么办?
55|高阶函数:函数对象与函数调用的用法区别
56|装饰器:函数嵌套的定义与调用的区别
57|再回首:“函数”单元小结
58|编程思想不同会导致怎样的代码差异?
59|类与实例:如何使用面向对象的思想编写程序?
60|类的继承:如何解决代码重用的问题?
61|类的装饰器:如何改变类方法的功能?
62|小试牛刀:如何开发自动咖啡机?
63|避坑指南:类的常见错误
64|init 方法:如何为对象传递参数?
65|再回首:“类”单元小结
66 | 模块的导入:如何使用其他人编写好的代码功能?
67 | 标准库:Python 默认提供的便捷功能有哪些?
68 | 自定义模块:如何编写一个完整功能?
69 | 第三方模块的使用:如何使用其他人编写的代码?
70 | 小试牛刀:如何使用 Python 为函数求导?
71|再回首:“模块与标准库”单元小结
72|初识异常:异常的产生与分类
73|异常捕获:出现异常时,如何利用程序进行处理?
74|自定义异常捕获:如何定义业务异常?
75|避坑指南:编写捕获异常程序时经常出现的问题
76|再回首:“异常处理”单元小结
77|扩展数据类型:怎样使用更复杂的数据类型?
78|魔术方法:怎样通过类构造自己需要的数据类型?
79|怎样将 Python 和 C++ 结合起来混合编程?
80|怎样将已有算法改造成符合项目的特定算法?
81|设计模式:怎样合理组合多个函数和类?
82|Redis 数据库:怎样使用 NoSQL 数据库?
83|关系型数据库:怎样使用关系型数据库?
84|计算资源充足时,如何通过并行设计提高效率?
85|多进程间如何通信?
86|再回首:“高级数据类型与算法”单元小结
87|理论盘点:数据分析的流程及对应的 Python 库
88|理论盘点:数据采集的方法与 HTTP 协议
89|理论盘点:任务的并行执行原理
90|理论盘点:非规范化数据处理的基础与正则表达式
91|如何获取网页上的数据并存储到文件?
92|小试牛刀:如何将数据进行图形化展示?
93|再回首:“数据分析”单元小结
94|理论盘点:文件类型与对应的 Python 函数库
95|如何批量读取 Excel 文件?
96|如何实现数据的批量格式转换?
97|如何扩展数据类型?
98|再回首:“办公自动化”单元小结
99|理论盘点:Web 客户端与服务端
100|理论盘点:MVC 模型是什么?
101|如何使用Django搭建简单的Web服务器?
102|如何使用Django-admin实现文章上传?
103|如何使用Django实现文章发布?
104|再回首:“Web开发”单元小结
105|理论盘点:人脸识别的一般步骤
106|理论盘点:人脸识别常用的 Python 库有哪些?
107|怎样通过 OpenCV 采集视频信号?
108|如何训练人脸模型?
109|怎样设计人脸识别系统?
110|再回首:“计算机视觉”单元小结
111|聚焦异同:物联网与互联网有啥不一样?
112|理论盘点:基础但不简单的 TCP 协议
113|理论盘点:物模型与模组
114|如何为 ESP32 安装 MicroPython?
115|怎样通过 MQTT 协议构建消息队列?
116|小试牛刀:在 OLED 屏幕和手机远程同时显示室内温度
117|再回首:“物联网”单元小结
118|结束语:人生苦短,我用Pyhon
结课测试|来赴一场满分之约吧!
直播加餐|与AI共同编程,用ChatGPT学Python
直播加餐|用OpenAI API理解Python数据类型
直播加餐|掌握Gradio框架:为 AI Agent 程序定制界面
本节摘要

课后习题
在 homework 文件夹下,有三个文件夹分别为 dira、dirb、dirc,三个文件夹下各自存放了和文件夹同名的文本文件,组成了如下格式:

现需要将三个 txt 文件,合并为 homework.txt 并放在 homework 下,请你用 Python 实现该需求。

PS:文件及文件夹需要自己创建一下哦!

课程代码、课件及其他相关资料地址
https://gitee.com/wilsonyin/zero-basics-python

登录 后留言

全部留言(30)

  • 最新
  • 精选
聪少 Jeff
import os # 目录名 file_dir = ['dira', 'dire', 'dirc'] home_dir = 'homework' # 创建目录 os.mkdir(home_dir) # 创建目录、创建文件写入内容 for f_dir in file_dir: os.mkdir(f_dir) with open("./" + f_dir + "/" + f_dir + ".txt", mode="w") as f: f.write(f_dir + ".txt") # 合并三个目录里面文件内容 f_data = [] for f_dir in file_dir: with open('./' + home_dir + "/" + f_dir + "/" + f_dir + '.txt') as f: f_data.append(f.read()) # print(f_data) with open('./' + home_dir + "/" + 'homework.txt', mode='w') as f: for data in f_data: f.write(data) 【作业存在的问题】 这个作业还不满意,就是目录(文件)已经存在了就好报错,程序将会停下来,如果有一种检测手段预判目录(文件)后存在跳过创建目录(文件)的语句,我想到了try ... catch,但是还要起看看手册再改一下

作者回复: 这个作业还不满意,就是目录(文件)已经存在了就好报错,程序将会停下来,如果有一种检测手段预判目录(文件)后存在跳过创建目录(文件)的语句,我想到了try ... catch,但是还要起看看手册再改一下 检测到目录或文件跳过应当使用if,而不应当使用异常捕获实现。因为异常捕获会带来两个问题, 第一个是捕获之后,就跳出了文件路径的遍历循环,再想继续判断还得再调用遍历路径的函数,比较麻烦 另一个问题带来的是代码阅读的困扰, 会有种程序“跳来跳去”的感觉,读起来也不通顺

2023-01-13
2
PatrickL
import os os.mkdir('dira') with open('./dira/dira.txt', mode='w', encoding='UTF-8') as fa: fa.write('aaa\n') os.mkdir('dirb') with open('./dirb/dirb.txt', mode='w', encoding='UTF-8') as fb: fb.write('bbb\n') os.mkdir('dirc') with open('./dirc/dirc.txt', mode='w', encoding='UTF-8') as fc: fc.write('ccc\n') with open('./dira/dira.txt', mode='r', encoding='UTF-8') as fa: data_a = fa.read() with open('./dirb/dirb.txt', mode='r', encoding='UTF-8') as fb: data_b = fb.read() with open('./dirc/dirc.txt', mode='r', encoding='UTF-8') as fc: data_c = fc.read() os.mkdir('homework') with open('./homework/homework.txt', mode='w', encoding='UTF-8') as fh: fh.write(data_a) fh.write(data_b) fh.write(data_c) # os.remove('./dira/dira.txt') # os.rmdir('./dira') # os.remove('./dirb/dirb.txt') # os.rmdir('./dirb') # os.remove('./dirc/dirc.txt') # os.rmdir('./dirc') # os.remove('./homework/homework.txt') # os.rmdir('./homework')
2022-12-14
2
Matthew
import os files_name = ['homework/dira/dira.txt', 'homework/dirb/dirb.txt', 'homework/dirc/dirc.txt'] files_data = [] for f_name in files_name: with open(f_name) as f: files_data.append(f.read()) with open('homework/homework.txt', 'w') as f: for f_data in files_data: f.write(f_data)
2022-12-10
2
不再是入门水平python的小宇
import os # 设置基础目录路径 base_dir = 'homework' output_file_path = os.path.join(base_dir,'homework.txt') # 用于存储所有文本内容 combined_content = "" # 遍历每个子文件夹 for directory in ['dira','dirb','dirc']: file_path = os.path.join(base_dir,directory,f"{directory}.txt") with open(file_path,'r') as f: combined_content += f.read() + '\n' # 将合并后的内容写入 homework.txt文件中 with open(output_file_path,'w') as f: f.write(combined_content)
2023-09-01
1
yanyu-xin
import os # 在当前目录下创建目录 os.mkdir(".\\homework") os.mkdir(".\\homework\\dira") os.mkdir(".\\homework\\dirb") os.mkdir(".\\homework\\dirc") # 分别生成三个txt文件 string_a = """Python 3.11 is up to 10-60% faster than """ string_b = """Python 3.10. On average, we measured a 1.25x speedup """ string_c = """on the standard benchmark suite. See Faster CPython for details. """ os.chdir(".\\homework\\dira") # 打开dira目录,生成dira.txt with open('dira.txt', mode='w+' , encoding='UTF-8') as f: f.write(string_a) os.chdir("..\\..") # 返回当前目录 os.chdir(".\\homework\\dirb") # 打开dirb目录,生成dirb.txt with open('dirb.txt', mode='w+' , encoding='UTF-8') as f: f.write(string_b) os.chdir("..\\..") # 返回当前目录 os.chdir(".\\homework\\dirc") # 打开dira目录,生成dirc.txt with open('dirc.txt', mode='w+' , encoding='UTF-8') as f: f.write(string_c) os.chdir("..\\..") # 返回当前目录 # 分别打开三个文件 files_name = [".\\homework\\dira\\dira.txt" , ".\\homework\\dirb\\dirb.txt" ,".\\homework\\dirc\\dirc.txt"] files_data =[] # 读三个文件 for f_name in files_name : with open(f_name) as f: files_data.append(f.read()) # 合并生成homework.txt文件 os.chdir(".\\homework") # 打开homework目录 with open("homework.txt",mode='w') as f: for data in files_data : f.write(data) os.chdir("..") # 返回当前目录
2023-01-29
1
On
import os os.chdir("G:\\Python\\LearnPythonFromZero\\47homework") file_names = [".\\dira\\dira.txt", ".\\dirb\\dirb.txt", ".\\dirc\\dirc.txt"] file_data = [] for file_name in file_names: with open(file_name, mode="r", encoding="UTF-8") as f: file_data.append(f.read()) with open("homework.txt", mode="w", encoding="UTF-8") as f: for data in file_data: f.write(data)
2022-12-08
1
Geek_c131f7
import os os.chdir('./homework/dira') with open('dira.txt') as f: data_a = f.read() os.chdir('..') os.chdir('./dirb') with open('dirb.txt') as f: data_b = f.read() os.chdir('..') os.chdir('./dirc') with open('dirc.txt') as f: data_c = f.read() os.chdir('..') os.chdir('..') os.chdir('./homework') with open('homework.txt',mode = 'w') as f: f.write(data_a) f.write(data_b) f.write(data_c)
2024-03-14
686486
import pathlib import os file_name=["d:\homework\dira","d:\homework\dirb","d:\homework\dirc"] file_name2=["\dira.txt","\dirb.txt","\dirc.txt"] data=[] for dir_1,dir_2 in zip(file_name,file_name2) : path = pathlib.Path(dir_1) if path.is_dir(): print(f"{path} 文件夹存在") with open(f'{dir_1}{dir_2}', mode="w+") as f1: f1.write(f'{dir_1 + dir_2}') else: print(f"文件夹不存在,创建{path} 文件夹") # 创建多级文件夹 os.makedirs(dir_1) with open(f'{dir_1}{dir_2}', mode="w+") as f2: f2.write(f'{dir_1 + dir_2}') with open(f'{dir_1}{dir_2}', mode="r") as f: data.append(f.read()) print(data) result='\n'.join(data) with open('D:\homework\homework.txt',mode='w') as f: f.write(result)
2024-03-14
Geek_0c747b
files_name = ['./homework/dira/dira.txt', './homework/dirb/dirb.txt', './homework/dirc/dirc.txt'] files_data = [] for file in files_name: with open(file) as f: files_data.append(f.read()) with open('./homework/homework.txt', mode='w') as f: for data in files_data: f.write(data)
2023-12-05
杜少星
files_name = ["homework/dira/dira.txt", "homework/dirb/dirb.txt", "homework/dirc/dirc.txt"] files_data = [] for f_name in files_name: with open(f_name) as f: files_data.append(f.read()) #print(files_data) with open("homework/homeword.txt", mode="w") as f: for data in files_data: f.write(data) f.write("\n")
2023-11-30
收起评论