首页 > 解决方案 > FileNotFoundError: [Errno 2] No such file or directory instabot 错误

问题描述

我用 instabot 构建了一个简单的 instagram 机器人,但是它给了我以下错误:

PS C:\Users\sianu\instagram_bot> & C:/Users/sianu/AppData/Local/Programs/Python/Python39/python.exe c:/Users/sianu/instagram_bot/main.py
The json file does not exist
[]
2021-07-30 08:25:31,552 - INFO - Instabot version: 0.117.0 Started
2021-07-30 08:25:31,559 - INFO - Not yet logged in starting: PRE-LOGIN FLOW!
2021-07-30 08:25:34,519 - INFO - Logged-in successfully as '1970s_sheffield'!
2021-07-30 08:25:34,519 - INFO - LOGIN FLOW! Just logged-in: True
Traceback (most recent call last):
  File "c:\Users\sianu\instagram_bot\main.py", line 42, in <module>
    upload_post(filename)
  File "c:\Users\sianu\instagram_bot\main.py", line 30, in upload_post
    bot.upload_photo(filename,
  File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\bot\bot.py", line 806, in upload_photo
    return upload_photo(self, photo, caption, upload_id, from_video, options)
  File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\bot\bot_photo.py", line 26, in upload_photo
    result = self.api.upload_photo(
  File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\api\api.py", line 825, in upload_photo
    return upload_photo(
  File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\api\api_photo.py", line 132, in upload_photo
    if not compatible_aspect_ratio(get_image_size(photo)):
  File "C:\Users\sianu\AppData\Local\Programs\Python\Python39\lib\site-packages\instabot\api\api_photo.py", line 197, in get_image_size
    with open(fname, "rb") as fhandle:
FileNotFoundError: [Errno 2] No such file or directory: 'Ashgate Road.jpg'
2021-07-30 08:25:47,452 - INFO - Total requests: 31
PS C:\Users\sianu\instagram_bot> 

我的代码如下:

from instabot import Bot
import os 

def delete_files():
    if os.path.exists("config/*cookie.json"):
        os.remove("config/*cookie.json")
    else: 
        print("The json file does not exist")

    directory = "C:/Users/sianu/instagram_bot/img"
    files_in_directory = os.listdir(directory)
    filtered_files = [file for file in files_in_directory if file.endswith(".REMOVE_ME")]
    print(filtered_files)
    for file in filtered_files:
        path_to_file = os.path.join(directory, file)
        os.remove(path_to_file)

def get_picture():
    directory = "C:/Users/sianu/instagram_bot/img"
    for filename in os.listdir(directory):
        if filename.endswith(".jpg"):
            return filename

def upload_post(filename):
    bot = Bot()
    bot.login(username = "xxx",
        password = "xxx")
    hashtags = " #sheffield #1970ssheffield #1970s #vintagepics #cities #1970scities #city #cityonthemove #sheffieldissuper"
    
    bot.upload_photo(filename,
                    caption = filename + hashtags)

if __name__ == "__main__":
    delete_files()
    filename = get_picture()
    upload_post(filename) 

我试过只调用 get_picture() 方法并打印文件名,它可以毫无问题地做到这一点,所以我不确定为什么当它尝试上传这个文件时它说没有这样的文件?该代码过去也曾使用过,所以我不确定发生了什么。

标签: python

解决方案


推荐阅读