Python大佬进来坐坐,帮帮小白解决一下问题?

大佬,帮忙解决下我的纠结,我从:https://blog.csdn.net/zjiang1994/article/details/53513377
上面程序返回来的路径例如:D:/music/a 这个路径在程序中不能用啊 。

真正的路径是这样写的:D:\music\a 我想做一个小界面,用到 (路径选择,打开选择的路径),,文件目录两者之间有‘\’‘/’之分 。怎么办呐??

from tkinter import *
from tkinter.filedialog import askdirectory
import os

def selectPath():
    path_ = askdirectory()
    path.set(path_)
def open_path():
    ks = str(entry.get())               #获取到的路径是 D:/Python/dsas
    os.system("explorer %s"%ks)         #系统打开的路径 D:\Python\dsas  (怎么办怎么办
    print(ks)
root = Tk()
path = StringVar()

Label(root,text = "目标路径:").grid(row = 0, column = 0)
entry = Entry(root, textvariable = path)
entry.grid(row = 0, column = 1)
Button(root, text = "路径选择", command = selectPath).grid(row = 0, column = 2)
Button(root, text = "打开目录", command = open_path).grid(row = 0, column = 3)

root.mainloop()


2个回答

ks = str(entry.get())  
下面加上
ks = ks.replace("/", "\\")
qq_40675506
qq_40675506 谢谢你的回复
一年多之前 回复

你可以用这个程序转换一下,可以把任意路径转换成当前系统所需的 / 或者 \

import os


def convert_path(path: str):
    seps = r'\/'
    sep_other = seps.replace(os.sep, '')
    return path.replace(sep_other, os.sep) if sep_other in path else path


print(convert_path(r'a\b\c\d\e'))
print(convert_path(r'a/b/c/d/e'))
print(convert_path(r'a\b/c\d/e'))
# a/b/c/d/e
# a/b/c/d/e
# a/b/c/d/e

# 我的是Mac,所以 os.sep 是 /

其实,判断 in 也是需要遍历,replace 又要遍历,还不如不判断 in 直接使用replace效率更高呢。

import os


def convert_path(path: str):
    return path.replace(r'\/'.replace(os.sep, ''), os.sep)
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐