这里是Python的新手,正在做一个示例练习来列出目录的内容,并发现用我目前的知识水平无法解释的内容。
从步骤1,3和2,4看,结果是相同的,但是结果在1,2和3,4之间是不相同的。
5和6相同,但是不会扩展到子文件夹中,我认为这只是glob文本的问题。
但是随后7次抛出错误,而8次给出了正确的结果!
我们如何解释以上结果?
平台:Windows 10 Python版本:3.6.5
代码如下所示
db.collection.aggregate([
{ "$addFields": {
"TimeStamp": {
"$dateToString": {
"format": "%d-%m-%Y",
"date": { "$dateFromString": { "dateString": "$TimeStamp", "format": "%m-%d-%Y" }}
}
}
}},
{ "$out": "collection_name" }
])
以下是MainMenu类
import MainMenu
from pathlib import Path
import glob
def main():
menu = MainMenu.MainMenu()
operation, result = menu.show_main_menu()
if operation == 1:
# user chose file listing - result has to be path of the folder
p = Path(result)
print("result =", result)
print("p.resolve() =", p.resolve())
print("1. list(p.resolve().glob(\"./**/*\")):", list(p.resolve().glob("./**/*")))
print("2. glob.glob(result + \"./**/*\"):", glob.glob(result + "./**/*"))
print("3. list(p.resolve().glob(\"**/*\")):", list(p.resolve().glob("**/*")))
print("4. glob.glob(result + \"/**/*\"):", glob.glob(result + "/**/*"))
print("5. list(p.resolve().glob(\"**\")):", list(p.resolve().glob("**")))
print("6. glob.glob(result + \"**\"):", glob.glob(result + "**"))
print("7. list(p.resolve().glob(\"/**\")):", "Error: Non-relative patterns are unsupported")
print("8. glob.glob(result + \"/**\"):", glob.glob(result + "/**"))
if __name__ == '__main__':
main()
答案 0 :(得分:0)
1对2
list(p.resolve().glob("./**/*"))
glob.glob(result + "./**/*")
如果我们扩展第二个,我们得到
glob.glob("C:\Python\PlayTest\testfolder./**/*")
这不是有效路径,因此失败。使用the slash operator来连接路径,而不是直接操作字符串。
7。 您正在从“ /”中搜索。这意味着它使用的是绝对路径而不是相对路径。如错误消息所述,不支持此操作。(“ /”是Linux系统上的根目录。)