我在Windows中运行了一个python脚本,它使用os.environ['UserProfile']
检测用户配置文件。我需要修改此路径才能执行某些操作。
例如。我读到了:
C:\Users\User\Desktop
需要创建:
C':\'Users'\'User'\'Desktop
基本上用单引号括起所有非字母和非数字。
我想知道是否有最佳,最通用的方法来做到这一点。 re
? split
? os.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(“:'\'”,“':\'”))
答案 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)