大佬,帮忙解决下我的纠结,我从: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()
ks = str(entry.get())
下面加上
ks = ks.replace("/", "\\")
你可以用这个程序转换一下,可以把任意路径转换成当前系统所需的 / 或者 \
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)