简体   繁体   English

由于目录错误,Python 找不到我的文件

[英]Python can't find my file because of a directory error

So I have a function that scrapes instagram data and stores the number of likes to a dictionary.I think I have the function set up right but when I try to run a print statement, I keep getting a error that it can't find the file I'm looking for to run through the function.所以我有一个函数可以抓取 instagram 数据并将喜欢的数量存储到字典中。我认为我已经正确设置了该函数但是当我尝试运行打印语句时,我不断收到一个错误,它找不到我正在寻找运行该函数的文件。

This is the code I'm using to mount my google drive and set the directory to store my json files.这是我用来挂载我的谷歌驱动器并设置目录来存储我的 json 文件的代码。 I verified that this is all correct in my drive.我确认这在我的驱动器中都是正确的。

# Mount data location. Do not edit this cell except as indicated.

# Be sure you have a folder in the root of your Google Drive called APRD6342/Data.
# Data files for the course should be uploaded to that folder.
from pathlib import Path
try:
    from google.colab import drive
    drive.mount('/content/drive')
    datadir = Path('drive/My Drive/APRD6342/Data') # you may edit this location ...
except ModuleNotFoundError:
    datadir = Path('../../Data') # ... but don't change this!!!


INSTAGRAM_DIR = datadir / 'instagram'

Here is my function:这是我的功能:

def engagement(filename, follower_count):
    """Return the brand post engagement for the Instagram metadata file,
    filename, given follower_count as the number of Instagram followers for
    the brand.

    Returns a decimal engagement rate rounded to 4 decimal places. Python's
    standard `round` function should be used. E.g.:

    >>> engagement('instagram/volvocars.json', volvocars_follower_count)
    0.0125
    """
    with open(datadir / filename) as f:
        for line in f: #for each line in the file
            line_object = json.loads(line) 
            likes = line_object["GraphImages"]["edge_media_preview_like"]["count"] #find count

            if num in likes > 1:
                engagement.append(i) #add count to engagement
            comments = filename["GraphImages"]["edge_media_to_comment"]["count"] #find other count
            if num in comments > 1: 
                engagement.append(i) #add count
            engage_perc = sum(engagement)/follower_count #sum all counts and divide by the number of followers
    return engage_perc

here is the print statement I'm trying to run and the error:这是我尝试运行的打印语句和错误:

print('Honda:',
    as_percent(engagement(INSTAGRAM_DIR / 'honda.json', honda_follower_count)))


---> 12     with open(datadir / filename) as f:
     13         for line in f: #for each line in the file
     14             line_object = json.loads(line)

FileNotFoundError: [Errno 2] No such file or directory: 'drive/My Drive/APRD6342/Data/drive/My Drive/APRD6342/Data/instagram/honda.json'

I've ran that mounting code before fine but for some reason my directory is nesting itself or something.我之前已经运行过安装代码,但由于某种原因,我的目录正在嵌套自己或其他东西。 Thanks!谢谢!

when you call the function with当你用

print('Honda:',
    as_percent(engagement(INSTAGRAM_DIR / 'honda.json', honda_follower_count)))

you supply the full path, but then in the function, the path is added again您提供完整路径,但随后在函数中,再次添加路径

 with open(datadir / filename) as f:

Pass just the subfolder instagram and the file name.仅传递子文件夹instagram和文件名。 Note the docstring - they supply 'instagram/volvocars.json' , so you need to supply 'instagram/honda.json'注意文档字符串 - 他们提供'instagram/volvocars.json' ,所以你需要提供'instagram/honda.json'

So was able to figure out a way to not have to use a jsonl file but just json.所以能够找到一种不必使用 jsonl 文件而只使用 json.json 文件的方法。 Was mixing up some syntax.混淆了一些语法。

def engagement(filename, follower_count):
    """Return the brand post engagement for the Instagram metadata file,
    filename, given follower_count as the number of Instagram followers for
    the brand.

    Returns a decimal engagement rate rounded to 4 decimal places. Python's
    standard `round` function should be used. E.g.:

    >>> engagement('instagram/volvocars.json', volvocars_follower_count)
    0.0125
    """
    engagement = [] #set empty list for like counts
    data = filename #store filename to variable
    with open(data) as f: #save open file as outfile
        parse = json.load(f)
        for n in range(0,200):
            likes = parse["GraphImages"][n]["edge_media_preview_like"]["count"] #find count
            if likes > 1:
                    engagement.append(likes) #add count to engagement
            comments = parse["GraphImages"][n]["edge_media_to_comment"]["count"] #find other count
            if comments > 1: 
                    engagement.append(comments) #add count
            engage_perc = (sum(engagement)/len(range(0,200)))/follower_count #sum all counts and divide by the number of followers
        return round(engage_perc,4)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我的 Python 脚本在同一目录下找不到 JSON 文件 - My Python Script can't find a JSON file in the same directory python为什么找不到我的文件? - Why can't python find my file? Python找不到我的文本文件? - Python can't find my text file? 使用python pykitti包在目录中找不到文件 - Can't find file in directory using python pykitti package 为什么我的 Python 程序找不到我的文件? - Why can't my Python program find my file? Python-我看不到我的错误是因为窗口立即消失 - Python - I can't see my what my error is because the window disappears immediately 我正在尝试标准化我的属性,但由于 Python 找不到它而出现标准缩放器错误 - I'm trying to standardize my attribute but I'm getting standard scaler error because Python can not find it 无法在Python turtle模块中添加形状-没有此类文件或目录错误 - Can't add shape in Python turtle module - no such file or directory error 我的加密代码找不到文件“FileNotFoundError: [Errno 2] No such file or directory: file” - My encryption code can't find a file “FileNotFoundError: [Errno 2] No such file or directory: file” WSGI配置文件为什么找不到我的Python变量? - Why can't WSGI configuration file find my Python variable?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM