m0_73023832 2022-09-07 18:39 采纳率: 100%
浏览 42
已结题

如何在同一个for循环下,逐步执行命令

如何在同一个for循环下,逐步执行命令(执行完上一条命令后,在执行下一条命令)

from os import listdir, remove, rename
from os.path import isdir, isfile, join
from time import sleep

dirs = [i for i in listdir('./') if isdir(join('./', i))] 查找该层文件夹下所有的文件夹,返回列表
for files in dirs:
dir = [i for i in listdir(files)]
for file in dir:
text = './' + files + '/' + file
if file == "**.txt":
with open(text, "r", encoding="utf-8") as f1, open("%s.bak" % text, "w+", encoding="utf-8") as f2:
for f in f1.readlines():
i = 'qianzhui' + '_' + f
f2.write(i)
j = f.replace("01_01", "22_02_03")
f2.write(j)
k = f.replace("01_01", "22_03_04")
f2.write(k)
l = f.replace("01_01", "22_04_05")
f2.write(l)

        remove(text)
        rename("%s.bak" % text, text)

这是代码运行后的实际结果 

img

这是我的预期结果

img

哪位DL帮忙修改一下代码,实现我的预期结果

  • 写回答

2条回答 默认 最新

  • m0_73023832 2022-09-21 17:03
    关注

    from os import getcwd, listdir, remove, rename, mkdir
    from os.path import join, abspath

    re_list = []
    prefix = 'qianzhui_'
    rename_list = ['22_02_03', '22_03_04', '22_04_05']
    path = abspath(join(getcwd(), "..")) # 返回上级目录
    dirs = [i for i in listdir(path)] # 查找该层文件夹下所有的文件及文件夹,返回列表
    for files in dirs: # 遍历列表
    dir = [i for i in listdir(join(path, files))]
    for file in dir:
    text = join(path, files, file)
    if file == "**.txt":
    with open(text, "r", encoding="utf-8") as f1, open("%s.bak" % text, "w+", encoding="utf-8") as f2:
    for f in f1.readlines():
    i = prefix + f
    re_list.append(i)
    re_list.append(f.replace("01_01", rename_list[0]))
    re_list.append(f.replace("01_01", rename_list[1]))
    re_list.append(f.replace("01_01", rename_list[2]))

                for i in range(len(re_list)):
                    if prefix in re_list[i]:
                        f2.write(re_list[i])
                f2.write('\n\n')
    
                for name in rename_list:
                    for i in range(len(re_list)):
                        if name in re_list[i]:
                            f2.write(re_list[i])
                    f2.write('\n\n')
    
            remove(text)
            rename("%s.bak" % text, text)
    
            with open(text, "r", encoding="utf-8") as f1:
                for f in f1.readlines():
                    if 'Competitors' in f:
                        name = f.strip()
                        mkdir(join(path, files, name))
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月29日
  • 已采纳回答 9月21日
  • 修改了问题 9月21日
  • 修改了问题 9月21日
  • 展开全部

悬赏问题

  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入