【问题标题】:Python: Loop with list, use list value in directoryPython:使用列表循环,在目录中使用列表值
【发布时间】:2016-10-11 18:28:45
【问题描述】:

python新手,我有以下代码:

XX = [A,B,C,D,E]
src_path = 'C:\love\hi_XX\you'

for file in src_path:
    Do something....

我想先循环遍历C:\love\hi_A\you 中的所有文件,然后循环遍历C:\love\hi_B\you 一直到C:\love\hi_E\you

我正在使用 Spyder。我该如何进行这项工作?谢谢。

【问题讨论】:

  • 您在寻找什么?读取或写入文件?
  • 寻找一种方法来帮助使用 for 循环遍历所有文件夹而不重复 5 次 for 循环
  • 太棒了。谢谢 AJNeufeld

标签: list python-2.7 for-loop


【解决方案1】:

您可以通过对 XX 中的元素使用 for 循环来创建所需的 src_path

for X in XX:
    src_path = r'C:\love\hi_' +X + r'\you'

然后,在该循环中,您可以像在另一个答案中一样使用os.walk

import os
for root, dirs, files in os.walk(".", topdown=False):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

【讨论】:

  • 得到错误说 A,B C... 未定义名称。然后我 pgot 错误不能分配给 literalut A= 'A', B = 'B'
  • 你是想说你不能输入命令 A='A' 吗?
  • 从 AJNewfeld 获得解决方案
【解决方案2】:

在标准的“os”模块中有一个函数。

https://docs.python.org/2/library/os.html#os.walk

【讨论】:

  • 通读,但不适用于我的情况。谢谢
【解决方案3】:

您需要在数组中的文字周围加上引号。而os.path.join 总是将路径组件连接在一起的好主意:

import os.path
XX = ["A", "B", "C", "D", "E"]
for X in XX:
    src_path = os.path.join(r'C:\love', "hi_"+X, "you")
    print(src_path)

C:\love\hi_A\你
C:\love\hi_B\你
C:\love\hi_C\你
C:\love\hi_D\你
C:\love\hi_E\你

最后,如果C:\love\hi_XX\you 是目录,并且您需要它们下面的文件,那么在您的src_path 值上使用os.walk

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-16
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2021-06-08
    • 2013-10-30
    • 1970-01-01
    • 2019-07-25
    相关资源
    最近更新 更多