【问题标题】:python select explorer filepython选择资源管理器文件
【发布时间】:2021-07-26 21:20:15
【问题描述】:
导入子流程 path = r"C:/Users/Χρήστος/Desktop/Papinhio player old/notes/cases.txt" subprocess.Popen(r'explorer /select,"'+path+'"')

当我运行 up 代码时,我应该打开文件夹 C:/Users/Χρήστος/Desktop/Papinhio player old/notes/ 并高亮选择文件 cases.txt

文件夹和文件存在(例如:cd C:/Users/Χρήστος/Desktop/Papinhio player old/notes/works.

我认为上面的代码在几个月前就可以工作,我现在不知道为什么不工作。 我尝试使用两个 python 版本运行代码:3.9.2 和 3.8.9

你能帮我一下吗?

而不是这个,它打开我的电脑资源管理器窗口。

我发现了问题:

导入子流程 导入操作系统 path = "C:/Users/Χρήστος/Desktop/Papinhio player old/notes/cases.txt" 路径 = os.path.abspath(路径) 路径 = path.replace('/', '\\') subprocess.Popen(r'explorer /select,"'+path+'"', shell=True)

但如果有更好的答案我想知道。

【问题讨论】:

  • 刚刚测试过,这似乎是在文件路径不存在时发生的。也许您已重命名文件夹?否则可能与特殊希腊字符的某些编码/解码有关

标签: python subprocess explorer


【解决方案1】:

使用shell=True 运行它

import subprocess
path = r"C:/Users/Χρήστος/Desktop/Papinhio player old/notes/cases.txt"
subprocess.Popen(r'explorer /select,"'+path+'"', shell=True)

【讨论】:

  • 不,我找到了。如果我替换 /--> \\ 那么它可以工作。我可以使用路径模块中的任何功能吗?
  • 是的,import os,os.path.join()是解析文件路径的正确方式,也可以使用pathlib模块
  • 检查问题。我已经发布了一个答案。没事吧?
  • 是的,它也应该使用abspath,不过你不需要替换,os.path 模块会处理它
【解决方案2】:
import subprocess
import os

path = "C:/Users/Χρήστος/Desktop/Papinhio player old/notes/cases.txt"
path = os.path.abspath(path)
path = path.replace('/', '\\')
subprocess.Popen(r'explorer /select,"'+path+'"', shell=True)

【讨论】:

    猜你喜欢
    • 2011-02-22
    • 1970-01-01
    • 2012-05-14
    • 2010-09-24
    • 2012-05-05
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多