Python 尝试提取配置文件(XML、DLL、DMX等)以保存它们,并在需要时覆盖它们
我编写这段代码是为了提取配置文件,以便在我们所做的修改不起作用的情况下进行备份。但当我运行它时,什么也没发生。它甚至没有问我你想做提取、恢复还是删除安全备份 对不起,如果这是显而易见的,但我是相当新的编码 谢谢你的帮助 编辑: 这是新的代码,正在工作,但它只遍历当前目录,我还不能让它遍历目录树 这是新代码 这是旧代码Python 尝试提取配置文件(XML、DLL、DMX等)以保存它们,并在需要时覆盖它们,python,python-3.x,Python,Python 3.x,我编写这段代码是为了提取配置文件,以便在我们所做的修改不起作用的情况下进行备份。但当我运行它时,什么也没发生。它甚至没有问我你想做提取、恢复还是删除安全备份 对不起,如果这是显而易见的,但我是相当新的编码 谢谢你的帮助 编辑: 这是新的代码,正在工作,但它只遍历当前目录,我还不能让它遍历目录树 这是新代码 这是旧代码 此行产生语法错误: if os.path.dirname(.\\configbackup\\) == true: 在您修复之前,您的代码将永远不会运行,因此将永远不会产生任何输出
此行产生语法错误:
if os.path.dirname(.\\configbackup\\) == true:
在您修复之前,您的代码将永远不会运行,因此将永远不会产生任何输出
这是os.path.dirname的文档:
os.path.dirnamepath
返回路径名路径的目录名。这是通过向函数split传递路径返回的对中的第一个元素
在这种情况下,您的产品线试图做什么
在这种情况下,什么才是正确的?
你是说真的吗?
如果是,那么您打算如何将os.path.dirname返回的目录名与True进行比较?
在这里,你想实现的具体目标是什么
还有几件事要看。您的代码中还有很多工作需要做,但现在有几件事情需要考虑
这是一种糟糕的风格:
if os.path.dirname(.\\configbackup\\) == true:
else:
我更喜欢这个:
if os.path.dirname(.\\configbackup\\) == true:
pass
else:
这一行是测试用户输入的一种笨拙而困难的方法:
if choice == "extraction" or "Extraction" or "e" or "E":
相反,只需在已知情况下测试输入的第一个非空白字符。像这样:
if choice.strip()[0].lower() == 'e':
从左到右,我们是:
从输入字符串的开头和结尾删除任何空格,然后
从剩余字符串中提取第一个字符,以及
强制该字符为小写,以及
测试第一个非空白小写字符是否为“e”。
如果输入是一个空字符串,这将不能很好地工作,但处理它是您旅程中另一个学习阶段的工作
这行的结束冒号在哪里
if filename.endswith(filetype)
它仍然不起作用,但我走对了路。我对os.dirname有错误,需要os.path.isdir来测试它是否存在,我也做了这些更改。感谢您的帮助。如果您需要更多帮助,请使用新代码更新您的问题,并添加您已经这样做的注释。如果你觉得你正在路上,要么接受答案,要么删除你的问题,让人们知道原来的问题不再是当前的问题。
if choice.strip()[0].lower() == 'e':
if filename.endswith(filetype)