【问题标题】:Python os.getcwd() returns with tilde in the path. e.g. C:\MYFOLD~1\testPython os.getcwd() 在路径中返回波浪号。例如C:\MYFOLD~1\test
【发布时间】:2012-07-15 18:41:54
【问题描述】:

如何让 python 返回 C:\myfolderisafolder\test 的完整路径名?

【问题讨论】:

标签: python path directory tilde getcwd


【解决方案1】:

尝试使用os.path.realpathos.path.normpath

【讨论】:

    【解决方案2】:
    E:\dev>cd VARESE~1
    
    E:\dev\VARESE~1>python
    >>> import os
    >>> os.getcwd()
    'E:\\dev\\VARESE~1'
    >>> exit()
    
    E:\dev\VARESE~1>cd ..
    E:\dev>cd VAResearchDemo
    
    E:\dev\VAResearchDemo>python
    >>> import os
    >>> os.getcwd()
    'E:\\dev\\VAResearchDemo'
    >>> exit()
    

    如您所见,如果我在VARESE~1 目录中运行pythonos.getcwd() 返回短路径。如果我在同一目录中运行 python 但路径很长,它会返回长路径。

    因此,您应该尝试在C:\myfolderisafolder\test 中运行python(检查链接的属性或运行方式)。

    但是如果需要短路径转成长路径,就得调用win32的GetLongPathName函数

    【讨论】:

      【解决方案3】:

      也许这会有所帮助:

      fullpath = os.path.expanduser('~/my/path')
      

      【讨论】:

        【解决方案4】:

        您可以在波浪号处使用 .split() 拆分字符串,然后使用 .join() 方法重新加入完整的文件路径。

        【讨论】:

          猜你喜欢
          • 2010-12-13
          • 2011-03-05
          • 2021-10-15
          • 1970-01-01
          • 2017-02-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-11-05
          相关资源
          最近更新 更多