创建目录或文件路径列表

时间:2014-05-22 22:23:20

标签: python list

我正处于我的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认为文件路径中的每个字母都是列表的一个独立部分...无论如何要让它将每个文件路径视为文件路径?

1 个答案:

答案 0 :(得分:1)

在python中,如果你将一个字符串传递给for循环(例如,对于i in" hello" :),它将分别返回每个字母。我想你想要的是for i in filepaths.split(","),它将把字符串用逗号分开。您可能还想:

    循环中的
  1. 调用条(例如filepath = i.strip())(如果用户输入dir1,dir2,dir3而不是dir1,dir2,dir3)
  2. 检查你得到的是一个文件(可能是图像或其他);我相信os.listdir会回来。和..在unixy系统上;如果您知道所有.jpg都是if f.endswith(".jpg")
  3. ,请进行简单检查

    编辑:删除了第3点,注意到您确实在屏幕外使用了os.path.join