我正在编写一个Python脚本来为给定的学期和课程创建目录。我希望使用Python模块os、sys和getopt(同时提供short和long form选项),以便运行脚本如下所示:
>python directory.py –t fall2013 –c cs311-400
>python directory.py –-term fall2013 –-class cs311-400
我现在编写的代码如下所示:
^{pr2}$在这之后,我有了一个函数,它接受an使用的术语和过程操作系统.mkdir这样:
def make_folders(term, course):
if not os.path.isdir(term + course):
os.mkdir(term + course)
path = os.path.join(term + course, "assignments")
os.makedirs(path)
path = os.path.join(term + course, "examples")
os.makedirs(path)
path = os.path.join(term + course, "exams")
os.makedirs(path)
path = os.path.join(term + course, "lecture_notes")
os.makedirs(path)
path = os.path.join(term + course, "submissions")
os.makedirs(path)
make_folders(term, course)
由于某些原因,生成的文件夹只有一个表示术语的名称,而不是同时表示术语和课程的名称。我觉得这可能和我使用getopt有关,但我不确定。有什么建议吗?
实际上我在你们班,至少我几乎可以肯定我是。遇到了这个问题,在获取子目录时遇到了困难。我在谷歌上搜索到了这里!好吧,经过几次谷歌搜索和大量的故障排除,找到了我们问题的答案!在
这应该为你清理,并给你的新目录和子目录!祝你顺利完成剩下的任务。在
os.path.join
是一个聪明的函数。只需传递所需的任意多个文件夹:当您编写}中的字符串,直到},那么{}之间没有任何东西。在
term + course
时,Python直接连接term
和{os.path.join()
看到它们。也就是说,如果term == "fall2013"
和{一种解决方法是在术语和课程之间插入一个显式的斜杠,如} (无论如何,这是一个好主意),您只需将要连接到它的路径组件作为单独的参数传递给所有,并让它为您负责连接它们:
term + "/" + course
。但是,由于您可能已经被指示使用^{另外,对于你的作业,以及对好的Python编码的一些建议:
虽然^{} 模块实际上并不像注释中的rtrwalker声明那样被弃用,但是使用^{} 可能会更好,除非出于某种原因(比如说,赋值告诉您)使用
getopt
。你的代码看起来很重复。重复代码是一个"smell",它应该表示需要一个循环,可能如下所示:
相关问题 更多 >
编程相关推荐