亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對于其他列表和文件夾傳輸

對于其他列表和文件夾傳輸

瀟瀟雨雨 2023-10-06 18:33:56
我的子文件夾中有多個文件需要復制到另一個具有指定子文件夾名稱和日期時間的主文件夾,意味著A1/B/C/D/D.txt復制到A2/B/C/D/datetime_username/D.txt,目錄 B、C、D 中有多個文件夾,也許是 B1、B2...用戶決定要傳輸哪個子文件夾現在我正在嘗試打印 D 文件夾的路徑。我嘗試的文件夾位于我的桌面上。    import os, shutil        os.chdir('C:\\path')        def main():        lvl1 = ['Typ','GFP2']        lvl2 = ['A0','A1']        lvl3 = ['SCAN','MBIST']            project = input("Enter project: ")                #Validation        for s in lvl1:                if s == project:                src1 = 'IDC\\{}'.format(s)                                stepping = input("Enter Stepping: ")                                for l2 in lvl2:                    if l2 == stepping:                        #shutil.copytree()                        src2 = src1+'\\{}'.format(l2)                            thirdlvl = input("Enter SCAN/MBIST: ")                            for l3 in lvl3:                            if l3 == thirdlvl:                                src3 = src2+'\\{}'.format(l3)                                print(src3)                                                else:                    print("Stepping not found")                    break            else:            print("Project name not found")                    main()我會得到'''Enter project: TypEnter Stepping: A0Enter SCAN/MBIST: SCANIDC\Typ\A0\SCANStepping not found'''如果我想僅在未找到步進時打印“未找到步進”,現在即使存在此文件夾也會打印它。謝謝
查看完整描述

1 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

您需要break在您的for-else. 最小修改是:


def main():

    lvl1 = ['Typ','GFP2']

    lvl2 = ['A0','A1']

    lvl3 = ['SCAN','MBIST']


    project = input("Enter project: ")

    

    #Validation

    for s in lvl1:


        if s == project:

            src1 = 'IDC\\{}'.format(s)

            

            stepping = input("Enter Stepping: ")

            

            for l2 in lvl2:

                if l2 == stepping:

                    #shutil.copytree()

                    src2 = src1+'\\{}'.format(l2)


                    thirdlvl = input("Enter SCAN/MBIST: ")


                    for l3 in lvl3:

                        if l3 == thirdlvl:

                            src3 = src2+'\\{}'.format(l3)

                            print(src3)

                    break

            else:

                print("Stepping not found")

                

            break

    else:

        print("Project name not found")

for-loop您還可以通過以下方式擺脫


def main():

    lvl1 = ['Typ','GFP2']

    lvl2 = ['A0','A1']

    lvl3 = ['SCAN','MBIST']


    project = input("Enter project: ")


    #Validation

    if project in lvl1:

        src1 = 'IDC\\{}'.format(project)

        

        stepping = input("Enter Stepping: ")

        

        if stepping in lvl2:

            #shutil.copytree()

            src2 = src1+'\\{}'.format(stepping)


            thirdlvl = input("Enter SCAN/MBIST: ")


            if thirdlvl in lvl3:

                src3 = src2+'\\{}'.format(thirdlvl)

                print(src3)

        else:

            print("Stepping not found")

    else:

        print("Project name not found")

if-else不需要多層結構。這是一個修改。我還使用os.path.join()比字符串操作更適合處理路徑:


import os, shutil


working_dir = os.path.join("C:/", "path")

os.chdir(working_dir)


def main():

    lvl1 = ['Typ','GFP2']

    lvl2 = ['A0','A1']

    # lvl3 = ['SCAN','MBIST']

    

    project = input("Enter project: ")

    if project not in lvl1:

        print("Project name not found")

        return

    

    stepping = input("Enter Stepping: ")

    if stepping not in lvl2:

        print("Stepping not found")

        return


    thirdlvl = input("Enter SCAN/MBIST: ")

    

    src = os.path.join(project, stepping, thirdlvl)

    print("src", src)

    

    if not os.path.exists(src):

        print("Src not exists")


main()

os.listdir()您甚至可以通過為您列出所有子文件夾來進一步自動化該過程。


import os, shutil


working_dir = os.path.join("C:/", "path")

os.chdir(working_dir)


def main():    

    project = input("Enter project: ")

    lvl1 = os.listdir(working_dir) # list all the directories under the working directory.

    if project not in lvl1:

        print("Project name not found")

        return # if you want to exit when not finding the project folder.

    

    stepping = input("Enter Stepping: ") # list all the directories under the project directory.

    lvl2 = os.listdir(os.path.join(working_dir, project))

    if stepping not in lvl2:

        print("Stepping not found")

        return # if you want to exit when not finding the stepping folder.

        

    thirdlvl = input("Enter SCAN/MBIST: ")

    

    src = os.path.join(project, stepping, thirdlvl)

    print("src", src)

    

    if not os.path.exists(src):

        print("Src not exists")


main()


查看完整回答
反對 回復 2023-10-06
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號