Python无法看到csv文件。

3

我已经查看了论坛上的一些答案,但没有成功。我正在使用Linux Mint,Python 3.6.0,尝试在Python中打开CSV文件,但是会出现错误:

  file = open("~/Desktop/xyz/city.csv", "rb")
FileNotFoundError: [Errno 2] No such file or directory: '~/Desktop/xyz/city.csv'

我的代码:

import csv

file = open("~/Desktop/xyz/city.csv", "rb")
reader =csv.reader(file)

我也尝试将文件移动到桌面,就像一些答案中所说的一样,我使用了“city.csv”而不是路径。但还是不起作用。

完全不懂Linux,无法找出为什么它不起作用。

感谢每一个回复!


你是如何运行该命令的?仅从终端还是类似于cron之类的东西?可能“〜”没有按照你想象的方式展开。 - Jon
我使用Pycharm来运行所有的代码。 - michael93pl
正如其他答案所示,每个人都认为它是~。尝试使用以下代码:import os print os.path.abspath("~") 看看是否符合您的预期。 - Jon
3个回答

3

您不应该使用“~”来指定目录的路径,而是使用完整路径。例如:

import csv

file = open("/home/user/Desktop/xyz/city.csv", "rb")
reader =csv.reader(file)

如果您需要使用波浪符号,那么您应该使用os.path.expanduser('~/Desktop/xyz/city.csv')。例如:

import csv

file = open(os.path.expanduser("~/Desktop/xyz/city.csv"), "rb")
reader =csv.reader(file)

那是因为“波浪线展开”是一个用户界面功能,文件系统无法识别: http://www.gnu.org/software/bash/manual/bashref.html#Tilde-Expansion

我看到了你对另一个答案的评论,但是我现在无法在那里输入。如果您想知道如何访问Linux下的目录的完整路径,请使用命令 pwd,它将打印出当前目录的完整路径 :) - LucG

0

尝试使用完整的文件路径,类似于这样:

file = open("/home/[username]/Desktop/xyz/city.csv", "rb")

1
做完了,糟糕,我也尝试过/home/desktop,但没想到要加用户名。谢谢老兄! - michael93pl

0
通常情况下,~无法正确展开。我发现当需要时,将$HOME环境变量值放入Python变量中,然后使用join将其附加为文件名相对位置的前缀。这还允许您将文件移动到不同的位置并创建一个函数,使您能够重新定义前缀。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接