Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 尝试提取配置文件(XML、DLL、DMX等)以保存它们,并在需要时覆盖它们_Python_Python 3.x - Fatal编程技术网

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)