在Windows中编辑路径名 - 通用化

时间:2013-12-11 13:31:28

标签: python

我在Windows中运行了一个python脚本,它使用os.environ['UserProfile']检测用户配置文件。我需要修改此路径才能执行某些操作。

例如。我读到了:

C:\Users\User\Desktop

需要创建:

C':\'Users'\'User'\'Desktop

基本上用单引号括起所有非字母和非数字。

我想知道是否有最佳,最通用的方法来做到这一点。 resplitos.join?理想情况下,我希望完全具有通用性,独立于路径名或操作系统。

这是我目前用来实现它的笨重代码:

for letter in amend_dir:
    if amend_dir[track] not in string.ascii_letters:
        if amend_dir[track-1] in string.ascii_letters:
            if amend_dir[track+1] not in string.ascii_letters:
                newer_letter = "'"+letter
    if amend_dir[track] not in string.ascii_letters:
        if amend_dir[track-1] not in string.ascii_letters:
            if amend_dir[track+1] in string.ascii_letters:
                newer_letter = letter+"'"
    if amend_dir[track] not in string.ascii_letters:
        if amend_dir[track-1] in string.ascii_letters:
            if amend_dir[track+1] in string.ascii_letters:
                    newer_letter = "'"+letter+"'"

编辑:

我对os模块运气不太好,但这个2-liner工作得很好:

amend_dir =(parameters ['default_dir']。replace('\',“'\'”)) amend2_dir =(amend_dir.replace(“:'\'”,“':\'”))

2 个答案:

答案 0 :(得分:1)

标准模块os.path中已经有了广泛的路径名操作工具,只需使用它。

请记住,使用\L:符号时,windows是不常见的,os.path模块会为您干净利落地处理。

答案 1 :(得分:0)

这样的事情怎么样:

import re
x = r'C:\Users\User\Desktop'
re.sub(r'([^\w]+)',"'\g<1>'",x)