2017-02-03 49 views
1

我正在使用庫來爲程序添加一個bot,但我不確定框架中的一部分。我不知道爲什麼下面的代碼不工作:Errno 2:在隨機生成器上沒有這樣的文件或目錄

@bot.command() 
async def meme(): 
    path = r"C:\Users\Diego\Dropbox\PycharmProjects\XDBot\freshmemes" 
    memeToPost = random.choice([ 
          x for x in os.listdir(path) 
          if os.path.isfile(os.path.join(path, x)) 
          ]) 
    await bot.upload(path+memeToPost) 

(忽略@ bot.command(),異步高清米姆,伺機bot.upload,因爲它是BOT框架我」的一部分,利用M)

每當我嘗試運行它,我得到this

任何幫助表示讚賞,感謝:)

+2

您可以將代碼直接添加到問題中,而不是鏈接到pastebins。 –

+2

根據該pastebin中的錯誤消息,它看起來像您試圖上傳您的系統中不存在的文件。你是否已經進入文件系統的目錄並查看文件是否真的存在? – lambdaman

回答

0

的最後一行,則需要upload(path + '/' + memeToPost)

您的代碼:

def meme(): 
    path = r"C:\Users\Diego\Dropbox\PycharmProjects\XDBot\freshmemes" 
    memeToPost = random.choice([ 
          x for x in os.listdir(path) 
          if os.path.isfile(os.path.join(path, x)) 
          ]) 
    await bot.upload(path+memeToPost) 
0

使用os.path.join(path, memeToPost),而不是path+memeToPost,因爲你錯過了路徑和文件名

0
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Diego\\Dropbox\\PycharmProjects\\XDBot\\freshmemesmeme1.jpg' 

之間\假設你想要一個名爲freshmemesmeme1.jpg一個名爲XDBot文件夾中的文件,這聽起來好像你只是避風港在相關文件夾中沒有名爲freshmemesmeme1.jpg的文件。更正路徑(或將圖像移動到XDBot文件夾)應該可以解決問題:)

但是,您更可能需要如下路徑:C:\Users\Diego\Dropbox\PycharmProjects\XDBot\freshmemes\meme1.jpg。在這種情況下,你錯過了尾部的反斜槓在你在Python定義路徑:

path = r"C:\Users\Diego\Dropbox\PycharmProjects\XDBot\freshmemes" 

應該是:

path = r"C:\Users\Diego\Dropbox\PycharmProjects\XDBot\freshmemes\" 

希望這有助於!

相關問題