在python中,对于导入,是否有一种简单的方法可以使用大多数操作系统工具PYcharm等提供的更常见的路径语法?

在python中,对于导入,是否有一种简单的方法可以使用大多数操作系统工具PYcharm等提供的更常见的路径语法?,python,Python,大家好,我是一位以前的C开发人员,在这里切换到python进行一个新的项目,我们希望将机器学习纳入其中,因此python因为tensorflow是金标准,它是第一个用python发布的 我刚开始写我的前几个文件,python中的目录路径使用了所有的点,这真的很有趣。我不太习惯这种语法,我很惊讶python选择将其从更传统的斜杠更改为斜杠 例如,在Python中,我发现自己在写: from package1.subpackage2.subpackage3.subpackage4.module5 i

大家好,我是一位以前的C开发人员,在这里切换到python进行一个新的项目,我们希望将机器学习纳入其中,因此python因为tensorflow是金标准,它是第一个用python发布的

我刚开始写我的前几个文件,python中的目录路径使用了所有的点,这真的很有趣。我不太习惯这种语法,我很惊讶python选择将其从更传统的斜杠更改为斜杠

例如,在Python中,我发现自己在写:

from package1.subpackage2.subpackage3.subpackage4.module5 import function6
对于每一次导入,我都必须复制这种语法

这似乎很奇怪,因为整个行业通常都使用斜杠来表示路径。结果是有很多很多工具没有给我一些我可以快速迭代的东西。windows中的操作系统提供斜杠,mac中的操作系统有多种复制路径的方法,它们都提供斜杠,即使mac默认安装了python!即使从Web服务器或API通过文件路径调用,也会使用如下斜杠:

https://stackoverflow.com/questions/ask

F:\Google\Chrome\Application\38.0.2125.111\Locales

真正疯狂的是,考虑到我刚刚学习的这个名为PYCharm的python特定IDE,甚至当您选择文件并选择复制路径时,它的路径也会使用斜杠到达剪贴板!什么给了我?!当然,构建特定于python的ide的人会意识到语法对于导入是无效的,并将其设置为开发人员可以使用与我们编写它们的方式相匹配的东西


因此,我一直在stackoverflow和更广泛的网络中寻找解决方案,但我没有看到任何简单的解决方案。甚至python文档也没有提到更合适的方法!我希望我只是错过了一些东西。有没有一个工具可以为我提供正确的python路径?或者python开发人员能够看到这是一个问题,也许他们设置了一个转义字符,我可以使用它轻松地将所有其他工具中常见的斜杠路径格式化到我的导入中

如果您使用的是pycharm,那么使用tab扩展构建导入路径非常容易,或者pycharm的建议是使用自动导入功能。这些是更合适的方法。这两种方法都比复制粘贴文件路径然后手动替换斜杠快得多。事实上,您不应该复制粘贴文件路径并修改它们以使其成为导入

有关pycharm的自动导入的更多信息:

这里的关键是包和目录并不总是一样的。例如,使用_init__u;.py,您可以在包级别定义项目文件/目录中其他任何位置都不存在的其他变量,或者可以通过相同的机制将包级别定义的函数上移到模块级别。如果您在Python中使用tensorflow,那么就不需要将斜杠转换为点,因为您将发现的任何示例都将使用点进行导入


请记住,导入时并不是真正处理路径。您正在处理的包和模块可能解析为有效路径,但可能无法解析。由于涉及实际文件路径的所有内容都使用斜杠,因此复制粘贴路径当然不会将该路径转换为点

不,任何时候你需要通过其他目录使用一个文件的简单路径,你都会使用python中的点,这一点一开始很乏味,但你会习惯的。

python中的文件路径仍然使用斜杠。只是进口商品使用了点。我从未见过一个超过1点的导入。这是您试图引用的代码吗?只是一个示例,但类似!使用机器学习库,我们已经被证明是一个很大的发现,从斜线到点!希望我能找到一个简单的过程,将其简化为一个步骤。导入语法使用包、模块和对象的python对象层次结构,而不是路径。它看起来像一个路径,因为对象层次结构的上部是从技术上属于文件夹的包中派生出来的。任何时候,只要您需要通过其他目录使用指向文件的简单路径,您就会使用python中的点,这完全是错误的。例如,请参阅和标准库中的。导入不使用文件系统路径。@chris这个问题是关于导入的,标题中有导入。然后回答关于导入的问题。不要说任何时候都需要使用文件的简单路径。理想情况下,请注意导入不是文件系统路径,因为这是这里的核心误解。答案是关于导入的,因为这是对问题的直接回答,抱歉,混淆了。