Каким должен быть мой каталог в этом коде? - PullRequest
0 голосов
/ 12 апреля 2020

https://github.com/nicolas-gervais/predicting-car-price-from-scraped-data/tree/master/picture-scraper

Я пытаюсь запустить файл main.py в Google Colab, но получаю сообщение об ошибке из-за каталога, который я разместил. Я указал путь к папке, содержащей файлы .py. Я поместил каталог в папку с изображениями, но получаю эту ошибку.

python3: can't open file '/content/gdrive/My': [Errno 2] No such file or directory 

код:

import os

path = '/content/gdrive/My Drive/picture-scraper' #Where the .py files are located

os.chdir(path)

directory = '/content/gdrive/My Drive/Car Dataset' #Where the images are located

files = ['scrape', 'tag', 'save', 'select']

if __name__ == '__main__':
if not os.path.isdir(directory):
    os.mkdir(directory)

[os.system('python ' + path + f'{file}.py ' + directory) for file in files]

1 Ответ

0 голосов
/ 12 апреля 2020

Не используйте это как ваш l oop:

[os.system('python ' + path + f'{file}.py ' + directory) for file in files]

Используйте это вместо:

for file in files:
    command = f'python {path}{file}.py {directory}'
    print('Running command:', command)  # for debugging purposes
    os.system(command)

Когда вы это сделаете, я подозреваю, что вы увидите этот вывод :

Running command: python /content/gdrive/My Drive/picture-scraperscrape.py /content/gdrive/My Drive/Car Dataset
Running command: python /content/gdrive/My Drive/picture-scrapertag.py /content/gdrive/My Drive/Car Dataset
Running command: python /content/gdrive/My Drive/picture-scrapersave.py /content/gdrive/My Drive/Car Dataset
Running command: python /content/gdrive/My Drive/picture-scraperselect.py /content/gdrive/My Drive/Car Dataset

И я подозреваю, что если вы скопируете и вставите эти команды в командную строку, ни одна из команд не будет работать. Фактически, вы, скорее всего, получите ошибку, которую видели ранее:

python3: can't open file '/content/gdrive/My': [Errno 2] No such file or directory 

Чтобы заставить их работать, измените эту строку:

command = f'python {path}{file}.py {directory}'

на:

command = f'python "{path}/{file}.py" "{directory}"'

Тогда вы увидите вывод:

Running command: python "/content/gdrive/My Drive/picture-scraper/scrape.py" "/content/gdrive/My Drive/Car Dataset"
Running command: python "/content/gdrive/My Drive/picture-scraper/tag.py" "/content/gdrive/My Drive/Car Dataset"
Running command: python "/content/gdrive/My Drive/picture-scraper/save.py" "/content/gdrive/My Drive/Car Dataset"
Running command: python "/content/gdrive/My Drive/picture-scraper/select.py" "/content/gdrive/My Drive/Car Dataset"

И теперь, если вы скопируете и вставите эти команды в свой терминал, они должны работать. (На самом деле, команды уже должны быть запущены, так что вам даже не нужно копировать и вставлять их для их проверки.)

(Признаюсь, я не проверял этот вывод.)

Если это работает, вы можете удалить строку отладки.

Надеюсь, это поможет!

...