我正处于我的python教育的早期阶段。
我正在尝试创建一个从用户输入中获取的目录列表。
我不确定列出目录的语法是什么
这是我到目前为止所拥有的:
import os
from Tkinter import *
import tkMessageBox
master = Tk()
master.geometry("600x100+700+400")#remember its .geometry("WidthxHeight(+or-)X(+or-)Y")
filePath = Label(text="Enter filepath of files to convert")
filePath.pack()
e = Entry(master,width=60)
e.pack()
e.focus_set()
def convert():
myDirectory = e.get()
filepaths= '['+e.get()+']'
for i in filepaths:
filesToChange=os.listdir(i)
for f in filesToChange:
cmd = '/Applications/OpenImageIO/dist/macosx/bin/iconvert --inplace --scanline --compression zip -d half ' + os.path.join(i,f)
os.system(cmd)
def happyComp():
window = Tk()
window.wm_withdraw()
window.geometry("1x1+200+200")#remember its .geometry("WidthxHeight(+or-)X(+or-)Y")
tkMessageBox.showerror(title="Happy Compositing!",message="Converted!",parent=window)
def click():
convert()
happyComp()
b = Button(master, text="convert now!!!", width=10, command=click)
b.pack()
mainloop()
用户将在文本字段中输入以逗号分隔的多个目录。到目前为止,看起来python认为文件路径中的每个字母都是列表的一个独立部分...无论如何要让它将每个文件路径视为文件路径?
答案 0 :(得分:1)
在python中,如果你将一个字符串传递给for循环(例如,对于i in" hello" :),它将分别返回每个字母。我想你想要的是for i in filepaths.split(",")
,它将把字符串用逗号分开。您可能还想:
filepath = i.strip()
)(如果用户输入dir1,dir2,dir3而不是dir1,dir2,dir3)if f.endswith(".jpg")
)编辑:删除了第3点,注意到您确实在屏幕外使用了os.path.join