qq_40675506
qq_40675506
采纳率0%
2019-02-15 20:12

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条回答

  • lnotime Inotime 2年前

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

    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)
    
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2年前
    ks = str(entry.get())  
    下面加上
    ks = ks.replace("/", "\\")
    
    点赞 评论 复制链接分享

相关推荐