第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

系統(tǒng)在python中找不到指定的os.listdir路徑

系統(tǒng)在python中找不到指定的os.listdir路徑

慕妹3146593 2021-09-11 13:30:22
dirs= os.listdir('C:/Users/DELL PC/Desktop/Msc Project/MSc project/dataset')for file in dirs:    print (file)lowfiles  = [f for f in os.listdir('Training data/LOW')              if os.path.isfile(join('Training data/LOW', f))] highfiles = [f for f in os.listdir('Training data/HIGH')             if os.path.isfile(join('Training data/HIGH', f))]files = []我正在運(yùn)行此代碼來創(chuàng)建特征向量,但它顯示FileNotFoundError: [WinError 3] The system cannot find the path specified: 'Training data/LOW'當(dāng)我運(yùn)行前幾個代碼向我顯示目錄時(shí),它顯示了目錄中的所有文件。為什么會這樣?
查看完整描述

2 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個贊

嘗試這個。在這種情況下,我更喜歡編寫一個輔助函數(shù)而不是重復(fù)輸入(幾乎)相同的長行(太容易出錯)。同樣,如果列表理解太長,我更喜歡循環(huán)形式。


import os


def files(path):

    result = []

    for name in os.listdir(path):

        fullname = os.path.join(path, name)

        if os.path.isfile(fullname):

            result.append(name)

    return result


path = r"C:\Users\DELL PC\Desktop\Msc Project\MSc project\dataset"

for file in os.listdir(path):

    print(file)


lowfiles = files(os.path.join(path, r"Training data\LOW"))

highfiles = files(os.path.join(path, r"Training data\HIGH"))

澄清下面的評論:以下將進(jìn)入一個無限循環(huán),打印 1, 2, 3, 1, 2, 3, 1, 2, 3 ...


a = [1, 2, 3]

for i in a:

    a.append(i)

    print(i)

永遠(yuǎn)不要向正在執(zhí)行循環(huán)的容器添加元素。


在這里,您正在嘗試執(zhí)行此操作:


for i in lowfiles:

    lowfiles.append([i, 'Low'])

因此,如果lowfiles最初包含["file1", "file2"],則在第一個循環(huán)之后它將是["file1", "file2", ["file1", "Low"]],然后["file1", "file2", ["file1", "Low"], ["file2", "Low"], [["file1", "Low"], "Low"], ...]。你不想那樣做。


我只是猜測,但您想通過在名稱末尾附加“低”來重命名文件,然后:


首先修改files上面的函數(shù)以追加fullname(有目錄)而不是只有name沒有目錄),這樣你就不必os.path.join一次又一次。


要重命名文件,請執(zhí)行以下操作:


for fullname in files(os.path.join(path, r"Training data\LOW")):

    os.rename(fullname, fullname + "Low")

如果您不想更改文件擴(kuò)展名,則可以執(zhí)行以下操作:


for fullname in files(os.path.join(path, r"Training data\LOW")):

    base, ext = fullname.rsplit(".", 1)

    os.rename(fullname, base + "Low." + ext)

如果您不想重命名文件,則必須說明您要嘗試做什么。


查看完整回答
反對 回復(fù) 2021-09-11
  • 2 回答
  • 0 關(guān)注
  • 287 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號