问题
使用Pycharm和Windows 10,我得到了权限错误和代码不一致。我可以在我的windows 10桌面上使用这段代码,但它不能在我的Surface 4上工作:
xlsx = pd.ExcelFile('\test\Participant01Master.xlsx')
请注意文件夹和文件在我的PyCharm项目中。我使用熊猫作为上面给出的代码。然而,给我的错误是:
FileNotFoundError: [Errno 2] No such file or directory: '/test/Participant01Master.xlsx'
我想也许我的xlrd依赖有点古怪。因此,我尝试卸载xlrd包(以重新安装),得到了以下内容:

尝试解决方案
我可以成功地使用代码df = pd.read_excel(open('C:\\Users\hlyates\Source\Repos\Project0\Data\Participant01Master.xlsx','rb'))来读取我的文件。但是,这感觉很恶心,因为我的xlxs代码行适用于一台机器而不是另一台机器?
至于路径,我验证了PyCharm在Administrators组中,并且我的用户配置文件具有相同的权限和特殊的访问权限。
摘要
这真的扼杀了我对Windows生态系统的热情?我觉得PyCharm并没有像我的Windows 10机器那样工作。当我和管理组已经有权限时,当PyCharm管理(这似乎修复了一些奇怪的文件权限问题)时,我不应该需要右键单击并以管理员身份运行。我也觉得很奇怪,我的IDE会在我的桌面上工作,而不是Surface 4,我不像Windows那样对抗Linux。我只分享了这两个问题,因为我觉得它们可能是相关的?如果我正在做一些愚蠢的事情,尽一切努力指出这一点,我会纠正它,但我正在尽我所能对我提供的信息。谢谢你的耐心。:)
参考资料
我使用的代码找到了这里进行测试。
发布于 2016-04-13 14:39:51
您应该安装Python而不是“Program”文件夹,尝试'C:\Python\python35-32\‘,一切都会好起来的。如果您需要更多详细信息,请查看这主题。
关于Windows 10的炒作太多了,其实没有什么特别的。
发布于 2016-04-13 14:48:51
一个可能发生的问题是文件分隔符的问题。看起来您在路径名中使用反斜杠。Python将'\‘视为转义字符。若要使文件路径正常化(独立于OS),请使用os.path.normpath将斜杠转换为当前操作系统使用的文件分隔符:
xlsx = pd.ExcelFile(os.path.normpath('\test\Participant01Master.xlsx'))另一种方法可以使用os.sep代替斜杠。对于正在运行的OS python,这将使用正确的文件分隔符:
xlsx = pd.ExcelFile('{0}test{0}Participant01Master.xlsx'.format(os.sep))引用: os路径文档:https://docs.python.org/2/library/os.path.html#os.path.normpath
OS9epdoc:https://docs.python.org/2/library/os.html#os.sep
关于python文件路径的博客:https://pythonconquerstheuniverse.wordpress.com/2008/06/04/gotcha-%E2%80%94-backslashes-in-windows-filenames/
发布于 2017-09-27 20:01:19
我正在使用windows 10中的py魅力查找我使用的任何系统中的文件:
from os.path import expanduser, join, dirname, abspath
home = expanduser("~") # this is the path to the home folder of the current user
curdir = dirname(abspath(__file__)) # This one returns the path to the file that is running
filepath = join (curdir, 'filename.txt') # This one joins the path of my current directory to a file name (or any other path) independent of the system我对此进行了测试,并在Linux和Windows中工作
https://stackoverflow.com/questions/36599020
复制相似问题