Программа не вводит пути, которые я задал

#python

Вопрос:

Я запускаю эту программу, чтобы проверить, есть ли какие-либо ошибки в моих двух файлах: challenge_set.json и sample_submission.csv, но, похоже, программа никогда не вводит функцию def verify_submission(challenge_path, submission_path) в строке 16. Я нашел эту программу на веб-сайте Spotify и добавил пути только для challenge_path и submission_path в строках 13 и 14. Когда я запускаю это, возникают какие-либо ошибки. Знаете ли вы, почему программа печатает только это, когда я ее запускаю?

использование:

 python verify_submission.py challenge_set.json submission.csv  

Вот код:

 """  Verifies that a given challenge submision is properly constructed.   Usage:   python verify_submission.py challenge_set.json submission.csv """ import sys import json  NTRACKS = 500  challenge_path='C:\Users\user\Desktop\ML Datasets\spotify_million_playlist_datasets\challenge_set.json', submission_path='C:\Users\user\Downloads\sample_submission.csv'  def verify_submission(challenge_path, submission_path):  has_team_info = False  error_count = 0   try:  f = open(challenge_path)  js = f.read()  f.close()  challenge = json.loads(js)  except FileNotFoundError:  error_count  = 1  print("Can't read the challenge set")  return error_count   pids = set( for playlist in challenge["playlists"]])  if len(challenge["playlists"]) != 10000:  print("Bad challenge set")  error_count  = 1   # seed_tracks contains seed tracks for each challenge playlist  seed_tracks = {}  for playlist in challenge["playlists"]:  track_uris = [track["track_uri"] for track in playlist["tracks"]]  seed_tracks] = set(track_uris)   found_pids = set()   if error_count gt; 0:  return error_count   f = open(submission_path)  for line_no, line in enumerate(f):  line = line.strip()  if not line:  continue  if line[0] == "#":  continue   if not has_team_info:  if line.startswith("team_info"):  has_team_info = True  tinfo = line.split(",")  else:  print("missing team_info at line", line_no)  error_count  = 1   else:  fields = line.split(",")  fields = [f.strip() for f in fields]  try:  pid = int(fields[0])  except ValueError:  print("bad pid (should be an integer)", fields[0], "at line", line_no)  error_count  = 1  continue  tracks = fields[1:]  found_pids.add(pid)  if not pid in pids:  print("bad pid", pid, "at line", line_no)  error_count  = 1  if len(tracks) != NTRACKS:  print(  "wrong number of tracks, found",  len(tracks),  "should have",  NTRACKS,  "at",  line_no,  )  error_count  = 1  if len(set(tracks)) != NTRACKS:  print(  "wrong number of unique tracks, found",  len(set(tracks)),  "should have",  NTRACKS,  "at",  line_no,  )  error_count  = 1   if seed_tracks[pid].intersection(set(tracks)):  print(  "found seed tracks in the submission for playlist",  pid,  "at",  line_no,  )  error_count  = 1   for uri in tracks:  if not is_track_uri(uri):  print("bad track uri", uri, "at", line_no)  error_count  = 1   if len(found_pids) != len(pids):  print(  "wrong number of playlists, found", len(found_pids), "expected", len(pids)  )  error_count  = 1   return error_count   def is_track_uri(uri):  fields = uri.split(":")  return (  len(fields) == 3  and fields[0] == "spotify"  and fields[1] == "track"  and len(fields[2]) == 22  )   if __name__ == "__main__":  if len(sys.argv) != 3:  print("usage: python verify_submission.py challenge_set.json submission.csv")  sys.exit()  errors = verify_submission(sys.argv[1], sys.argv[2])  if errors == 0:  print(  "Submission is OK! Remember to gzip your submission before submitting it to the challenge."  )  else:  print(  "Your submission has",  errors,  "errors. If you submit it, it will be rejected.",  )  

Комментарии:

1. Вы упоминаете необходимые файлы в командной строке, как вам подсказывает использование? Установка их в коде, как показано на рисунке, не имеет никакого эффекта.

2. Я новичок в программировании, пожалуйста, не могли бы вы сказать мне, что я могу сделать? Как я могу упомянуть эти файлы в командной строке?

3. В вашем случае что-то вроде python verify_submission.py "C:UsersuserDesktopML Datasetsspotify_million_playlist_datasetschallenge_set.json" "C:UsersuserDownloadssample_submission.csv" . Имейте в виду, что путь должен быть заключен в кавычки, если он содержит пробелы (но это не повредит, если вы всегда будете его цитировать.