在python中将mac路径转换为posix

2024-09-30 02:33:07 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我无法将Mac路径转换为POSIX路径。我想转换成这样:

'Main HD:Users:sasha:Documents:SomeText.txt'

为此:

^{pr2}$

我知道我可以简单地将字符串拆分为一个列表,然后用正确的分隔符重新连接它。但我相信一定有一个更优雅的解决方案,可能涉及“macpath”或操作系统路径“python模块。然而,我还没能在这些模块中找到一个函数来实现两种格式之间的转换。在

简单字符串操作解决方案的另一个问题是,如果我有多个hd,那么简单的解决方案就行不通了。例如:

如果你有一条像这样的路径:

'Extra HD:SomeFolder:SomeOtherText.txt'

我们希望将其转换为:

'/Volumes/Extra HD/SomeFolder/SomeOtherText.txt'

不适用于:

'/SomeFolder/SomeOtherText.txt'

Tags: 模块字符串路径txtmainmac解决方案extra
2条回答

标准库中没有任何方法。os.path为当前操作系统提供路径操作方法,没有转换路径样式或更改分隔符的方法。诸如macpathposixpath、和{}等特定os路径操作模块不包含转换路径分隔符符号等的方法。(来源:os.path docs

因此,我认为用字符串操作替换分隔符是解决这个问题的合理方法。在

您可以使用Pythonssubprocess模块来完成此操作:

#!/usr/bin/python

import subprocess

def asExec(ascript):

    osa = subprocess.Popen(['osascript', '-'],
                           stdin=subprocess.PIPE,
                           stdout=subprocess.PIPE)
    return osa.communicate(ascript)[0]

def asConv(astr):

    astr = astr.replace('"', '" & quote & "')
    return '"{}"'.format(astr)

def aScript(aspath):

    ascript = '''
    set posixPath to POSIX path of {0}
    '''.format(asConv(aspath))
    return ascript

aliasPath = "Main HD:Users:sasha:Documents:SomeText.txt"
print(asExec(aScript(aliasPath)))

结果:

/Main HD/Users/sasha/Documents/SomeText.txt

相关问题 更多 >

    热门问题