在ubuntu中遇到文件路径问题

时间:2019-01-08 15:43:51

标签: python ubuntu

我无法确定某个文件的路径。实际上,它在Mac OS上可以正常运行,但是当我在Ubuntu上运行相同的代码块时,会引发此错误:

  

FileNotFoundError:[错误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上的终端运行相同的脚本时,它会完美加载数据集。

谢谢!

1 个答案:

答案 0 :(得分:0)

有多种方法可以解决此问题

1。

尝试在文件浏览器中找到您的文件,右键单击它->属性->复制位置,添加文件名。

在Linux中,文件名通常以/home/<username>/...或短~/...开头

2。

如果您在终端中使用python,则可以使用

>>> import os
>>> cwd = os.getcwd()
>>> my_dir = os.path.join(cwd, "my_dir")

3。

如果您没有终端文件浏览器,则可以使用cd <dir>在文件系统中移动,并使用ls查找文件,如果找到了文件,则使用realpath <file>打印整个文件名。