当前位置: 首页 > 面试题库 >

使用“ /”,“ \”的平台独立路径连接?

东方华晖
2023-03-14
问题内容

python中,我有变量base_dirfilename。我想把它们串联起来获得fullpath。但是在Windows下,我应该使用\和用于POSIX
/

fullpath = "%s/%s" % ( base_dir, filename ) # for Linux

如何使该平台独立?


问题答案:

您要为此使用os.path.join()。

使用此方法而不是使用字符串连接等方法的优势在于,它知道各种特定于OS的问题,例如路径分隔符。例子:

import os

Windows 7下

base_dir = r'c:\bla\bing'
filename = r'data.txt'

os.path.join(base_dir, filename)
'c:\\bla\\bing\\data.txt'

Linux下

base_dir = '/bla/bing'
filename = 'data.txt'

os.path.join(base_dir, filename)
'/bla/bing/data.txt'

所述OS模块包含目录,路径操纵并找出OS特定信息许多有用的方法,如在经由路径中使用的分离器os.sep



 类似资料:
  • 问题内容: 我正在使用以下代码从给定路径获取包含所有子目录的数组。 我需要数组来检查某些文件夹是否在此路径中的正确位置。直到findBugs抱怨File.separator用作正则表达式之前,这似乎是一个很好的解决方案。似乎将Windows文件分隔符传递给从中构建正则表达式的函数是个坏主意,因为反斜杠是转义字符。 如何不使用File.separator以跨平台方式拆分路径?还是这样的代码好吗? 问

  • 我总是问这个问题,但我找不到确切的答案: Docker平台独立吗? 我的意思是,当我在Windows中生成映像时,我能在Linux或macOS上运行该映像吗?或者当我在Ubuntu上生成映像时,我可以在Windows上运行该映像吗? 如果是,怎么做?如果不是,那么说docker映像可以在任何地方运行而不用担心任何依赖又有什么意义呢? 请帮我回答这个问题

  • 问题内容: 我有一些通过 Runtime.getRuntime.exec(String) 运行命令的代码,它可以在Windows上运行。当我将代码移至Linux时,它崩溃了,并且解决该问题的唯一方法是切换到 exec(String []) 版本。如果我这样处理,代码在Windows和Linux上是否可以相同,还是应该在Windows上使用exec(String)而在Linux上使用exec(Str

  • 问题内容: 提前道歉,提出一个(看似显而易见的)问题。我没有在线找到答案,所以我想问一下: Java的Util.Random是否独立于平台? 例如,是否将在* nix和Windows系统中产生完全相同的随机数序列? 问题答案: 从文档: 如果使用相同的种子创建了两个实例,并且对每个实例进行了相同的方法调用序列,则它们将生成并返回相同的数字序列。为了保证此属性,将为class指定特定的算法。为了实现

  • 问题内容: 我想在Unix和Windows上使用特定于平台的目录。请看一下代码: 这个输出 我想第二次打电话给(windows)类似 是否可以告诉我在Windows上运行的程序使用Windows分隔符?还是应该始终将反斜杠转换 为正斜杠()?这里首选的策略是什么? 问题答案: 我看到“问题”在哪里。在golang-nuts上的讨论为我提供了提示,该提示始终使用并且是用于依赖平台的操作的函数。 在W

  • 问题内容: JavaScript中是否存在类似于Java的东西? 编辑:我正在使用非浏览器JavaScript环境Node.js 问题答案: 我遇到了同样的问题,并且遇到了这个非常古老的问题。经过一段时间的投资,我终于在os文档的最后找到了。 在这种情况下非常重要,否则您将在控制台中仅看到一个空白行(这是有道理的,因为这就是它应该做的)。在正常的用例中,它是不需要的。