У меня проблемы с путем к определенному файлу. На самом деле он отлично работает в Mac OS, но когда я запускаю тот же кусок кода в Ubuntu, он выдает эту ошибку:
FileNotFoundError: [Errno 2] Нет такого файла или каталога:
'/Desktop/Numeratti/pg2dm-python-master/ch2/BX-Dump/BX-Book-Ratings.csv'
Я написал скрипт в sublime-text и запускаю его из терминала (ubuntu)
def loadBookDB(self, path=''):
"""loads the BX book dataset. Path is where the BX files are
located"""
self.data = {}
i = 0
#
# First load book ratings into self.data
#
f = codecs.open(path + "BX-Book-Ratings.csv", 'r', 'utf8')
for line in f:
i += 1
#separate line into fields
fields = line.split(';')
user = fields[0].strip('"')
book = fields[1].strip('"')
rating = int(fields[2].strip().strip('"'))
if user in self.data:
currentRatings = self.data[user]
else:
currentRatings = {}
currentRatings[book] = rating
self.data[user] = currentRatings
f.close()
f = codecs.open(path + "BX-Books.csv", 'r', 'utf8')
for line in f:
i += 1
#separate line into fields
fields = line.split(';')
isbn = fields[0].strip('"')
title = fields[1].strip('"')
author = fields[2].strip().strip('"')
title = title + ' by ' + author
self.productid2name[isbn] = title
f.close()
#
# Now load user info into both self.userid2name and
# self.username2id
#
f = codecs.open(path + "BX-Users.csv", 'r', 'utf8')
for line in f:
i += 1
#print(line)
#separate line into fields
fields = line.split(';')
userid = fields[0].strip('"')
location = fields[1].strip('"')
if len(fields) > 3:
age = fields[2].strip().strip('"')
else:
age = 'NULL'
if age != 'NULL':
value = location + ' (age: ' + age + ')'
else:
value = location
self.userid2name[userid] = value
self.username2id[location] = userid
f.close()
Я хотел бы знать, почему это происходит. Проблема в том, что я не могу загрузить набор данных. Я думаю, что это связано с путями к файлам в Linux, потому что, когда я запускаю тот же скрипт через терминал в MAC OS, он отлично загружает набор данных.
Спасибо!