python - 初学者打开资源管理器以显示文件夹内容
问题描述
几天来,我一直在 Windows 7 上修改 Python 3.66。取得了良好的进展,但我完全坚持如何打开 Windows 资源管理器并显示我想要的文件夹内容。
我已经尝试了至少 7 种来自相关问题的不同解决方案,但似乎都没有。他们都可以很好地打开资源管理器,但从不使用我的 Folder_selected 变量。
explorer 位是最后一行代码。这是(我怀疑编码错误)来源:
#FRenum-v.04
#renumbers a folder of files to 01 onward preserving file extenders.
#Steve Shambles june 2018, my 2nd ever python program
from tkinter import filedialog
from tkinter import *
import os
import os.path
import subprocess
#user selects directory
root = Tk()
root.withdraw() #stop tk window opening
folder_selected = filedialog.askdirectory() #open file requestor
#change dir to folder selected by user,
os.chdir (folder_selected)
#path is now the dir
path=(folder_selected)
# read user selected dir
files = os.listdir(folder_selected)
# inc is counter to keep track of what file we are working on
inc = 1
for file in files:
#store file extender in string file_ext
file_ext = os.path.splitext(file)[1]
# build new filename, starting with a "0" then
#value of inc then add file extender
created_file=("0"+str(inc)+ file_ext)
#if file does not exist rename it
if not os.path.exists(created_file):
os.rename(file,created_file)
#next one please, until done
inc = inc+1 #add to counter
#open explorer showing folder of renamed files
subprocess.Popen(["C:\\Windows\\explorer.exe"])
#these do not work properly, opens in c: or my docs
#subprocess.Popen(["C:\\Windows\\explorer.exe"+ folder_selected])
#subprocess.Popen(["C:\\Windows\\explorer.exe", folder_selected])
#subprocess.Popen(["C:\\Windows\\explorer.exe","folder_selected"])
#todo
#---------
#ignore sub-folders
#confirm requestor
#undo feature
#find out how to stop dos box showing in compiles prg
解决方案
这个问题是由 python/linux 和 windows 表示路径的差异引起的。我打印folder_selected
并得到:
C:/Users/name/Documents/Zevel
您需要在调用后立即添加以下内容askdirectory()
:
folder_selected = folder_selected.replace('/', '\\')
使路径对 Windows 可读,现在它看起来像:
C:\Users\name\Documents\Zevel
当然,你需要打电话subprocess.Popen(["explorer", folder_selected])
,一切都会奏效。
推荐阅读
- javascript - 如何在 react js 中动态更改网站的标题(也在源代码中)?
- javascript - 就性能而言,使用一个可重用组件与每次都导入文件
- css - 带有 display:block 的可滚动 div 的中心内容垂直
- c++ - typedef 在具有成员用法的模板化函数上
- logrotate - 我希望我的日志轮换以删除超过 7 天的日志文件
- reactjs - 我需要使用 jest-fetch-mock 来模拟它
- solr - 我在 solr 搜索引擎中以“/”正斜杠“Non-Conformity”结尾的搜索词遇到问题
- c# - 未使用 C# .Net Core 从 NotificationCenter 接收 NSWorkspaceWillSleepNotification
- android - Firebase onDataChange() 未执行
- javascript - 带有内部数组问题的 Javascript 对象