首页 > 解决方案 > /和\ windows和ubuntu的python解释

问题描述

我开发了一个在图表上显示信息的烧瓶应用程序。

然后我将应用程序部署在:

然后我尝试执行该应用程序,但由于某种原因,我在 ubuntu 上遇到了我在 Windows 上没有遇到的错误。这些错误之一与对文件的访问有关。

FileNotFoundError: [Errno 2] No such file or directory: '/home/myuser/projects/myflaskappe/mod_on/queries\\prices.sql'

我访问该文件并且它在那里,用户有权访问它。然后我决定修改引用该文档的 python 代码:

# original code 
data_objects = {'prices': {
    'sql-path': r'queries\prices.sql',
    'source': 'my_db',
    'flavor': 'mysql'}
    }

我发现如果我修改代码\/那么它可以完美地工作。

# modified code 
    data_objects = {'prices': {
        'sql-path': r'queries/prices.sql',
        'source': 'my_db',
        'flavor': 'mysql'}
        }

如果您注意到,我只需要修改\for/以使其工作。

这是为什么?

还有一些与此类似的其他问题,我无法理解它们为什么会发生。

标签: pythonpython-3.x

解决方案


原因是 Windows 和 *nix 使用不同的字符作为文件路径。在 Windows 中是\,而在 *nix 中是/.

为了使您的代码跨平台兼容,您应该考虑使用os.path.join(). 例如:

import os
print(os.path.join("queries", "prices.sql"))

这将在 *nix 上为您提供“queries/prices.sql”,在 Windows 上为您提供“queries\prices.sql”。


推荐阅读