Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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处理文件?_Python_File Io - Fatal编程技术网

用Python处理文件?

用Python处理文件?,python,file-io,Python,File Io,我是Python新手,我通过谷歌搜索和阅读一本书来学习。。。我学习了基础知识(我理解它们)我还学习了如何处理文件(但是,我更倾向于记住语法而不是理解它),例如: 要使用函数.walk()循环文件,我们使用了三个变量来循环,但我仍然不明白: for root, dirs, files in os.walk('*dir*', topdown=True): for name in files: filePath=(os.path.join(root, name))

我是Python新手,我通过谷歌搜索和阅读一本书来学习。。。我学习了基础知识(我理解它们)我还学习了如何处理文件(但是,我更倾向于记住语法而不是理解它),例如: 要使用函数
.walk()
循环文件,我们使用了三个变量来循环,但我仍然不明白:

for root, dirs, files in os.walk('*dir*', topdown=True):
    for name in files:
        filePath=(os.path.join(root, name))
        print(filePath)
    for name in dirs:
        filePath2=(os.path.join(root, name))
        print(filePath2)
我真的不明白上面的代码!
为什么要使用这么多的变量?为什么要使用两个循环?为什么要使用
os.path.join
两次?

外部循环中返回的变量是包含“当前”目录中的目录和文件的列表。当解析目录树时,这些列表会被迭代,以便您可以看到各个文件和子目录。join函数为每个文件和每个子目录构造路径以供查看


需要记住的一点是,walk函数递归地遍历整个目录树。这稍微简化了一些事情,但可能会让不了解此函数如何工作的人感到困惑,因为递归调用隐藏在walk函数中。

我建议您
打印(根、目录、文件)
并找出发生了什么。也可以阅读文档。
walk
在遍历文件系统时为我们提供元组
root
是我们目前所在的目录,
dirs
root
中的目录列表,
files
root
中的文件列表,这里的所有代码都要通过
dirs
files
并打印出这些文件和目录的完整路径。1)因为运行该代码需要这些文件和目录,2)一个在
文件上
另一个在
目录上
。3)
os.path.join
使用了两次不同的参数(在
for
的每次迭代中,
名称
都会发生变化)。