• 聪少 Jeff
    2023-01-13 来自广东
    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,而不应当使用异常捕获实现。因为异常捕获会带来两个问题, 第一个是捕获之后,就跳出了文件路径的遍历循环,再想继续判断还得再调用遍历路径的函数,比较麻烦 另一个问题带来的是代码阅读的困扰, 会有种程序“跳来跳去”的感觉,读起来也不通顺

    共 2 条评论
    
  • PatrickL
    2022-12-14 来自上海
    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')
    展开
    
    2
  • Matthew
    2022-12-10 来自江苏
    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)
    
    2
  • 不再是入门水平pytho...
    2023-09-01 来自上海
    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)
    
    1
  • yanyu-xin
    2023-01-29 来自广东
    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("..") # 返回当前目录
    展开
    
    1
  • On
    2022-12-08 来自陕西
    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)
    
    1
  • 叶疏言
    2023-09-13 来自浙江
    import os if not os.path.exists('homework'): os.makedirs('homework') else: print('文件夹已存在') f_data = [] for i in ('a','b','c'): dir_name = 'dir' + i dir_txt = dir_name + '.txt' dir_path = './homework/'+dir_name if not os.path.exists(dir_path): os.makedirs(dir_path) file_path = dir_path +'/'+ dir_txt print(file_path) with open(file_path, mode = 'w+') as f: f.write(dir_txt+'\n') with open(file_path) as f1: f_data.append(f1.read()) else: print('文件夹已存在') with open('./homework/homework.txt', mode='w') as f: for data in f_data: f.write(data)
    
    
  • 沐风
    2023-08-29 来自天津
    files_name = ['homework/dira/dira.txt', 'homework/dirb/dirb.txt', 'homework/dirc/dirc.txt'] with open("homework/homework.txt", mode="a", encoding="UTF-8") as w_file: for rf in file_list: with open(rf, mode="r", encoding="UTF-8") as node_file: for con_line in node_file: w_file.write(con_line)
    
    
  • Geek_219b52
    2023-08-05 来自浙江
    ''' 在 homework 文件夹下,有三个文件夹分别为 dira、dirb、dirc,三个文件夹下各自存放了和文件夹同名的文本文件,现需要将三个 txt 文件,合并为 homework.txt 并放在 homework 下,请你用 Python 实现该需求。 ''' #方式一 with open("D:\零基础学python\演示代码\homework\dira\dira.txt",mode = "r") as f1: file1 = f1.read() with open("D:\零基础学python\演示代码\homework\dirb\dirb.txt",mode = "r") as f2: file2 = f2.read() with open("D:\零基础学python\演示代码\homework\dirc\dirc.txt",mode = "r") as f3: file3 = f3.read() with open("D:\零基础学python\演示代码\homework\homework.txt",mode = "w+") as f: f.write(file1) f.write(file2) f.write(file3) #方式二 files_name = ["D:\零基础学python\演示代码\homework\dira\dira.txt","D:\零基础学python\演示代码\homework\dirb\dirb.txt","D:\零基础学python\演示代码\homework\dirc\dirc.txt"] file_data = [] for f_name in files_name: with open (f_name) as f: file_data.append(f.read()) print(f_name) with open("D:\零基础学python\演示代码\homework\homework.txt",mode = "w",encoding = "utf-8") as f: for data in file_data: f.write(data)
    展开
    
    
  • Greenery
    2023-07-17
    import os import pathlib dirs = ["./hk/dira", "./hk/dirb", "./hk/dirc"] for d in dirs: p = pathlib.Path(d) if not p.is_dir(): os.makedirs(d) with open("./hk/dira/dira.txt", "w") as f: f.write("dira yes yes yes!\n") with open("./hk/dirb/dirb.txt", "w") as f: f.write("dirb yes yes yes!\n") with open("./hk/dirc/dirc.txt", "w") as f: f.write("dirc yes yes yes!\n") files_data = [] files_path = ["./hk/dira/dira.txt", "./hk/dirb/dirb.txt", "./hk/dirc/dirc.txt"] for fp in files_path: with open(fp) as f: files_data.append(f.read()) with open("./hk/hk.txt","w") as f: for fd in files_data: f.write(fd)
    
    