【问题标题】:Use pydrive to list files using a variable holding the folder id's, in a loop使用 pydrive 在循环中使用包含文件夹 ID 的变量列出文件
【发布时间】:2017-06-21 00:37:18
【问题描述】:

我正在使用 pyDrive 获取特定文件夹 ID 中所有文件的列表。如果我对文件夹 ID 进行硬编码,它可以正常工作,但我想使用循环,并循环浏览文件夹 ID 列表。可能只是我没有将变量正确格式化为命令。

这很好用....

file_list = drive.ListFile({'q': "'0B1fhQb9wymxEUUFGVXpfYlJhTk0' in parents and trashed=false"}).GetList()

但是,如果我将该语句放入 for 循环中以循环浏览文件夹 ID 列表,则它不起作用。 '0B1fhQb9wymxEUUFGVXpfYlJhTk0' 是我需要在 for 循环中换掉变量的部分。

我已经尝试了各种我可以在网上找到的示例 for 循环,以及各种替换循环变量的方法。甚至尝试将命令的前半部分放在一个字符串中,后半部分放在另一个字符串中,然后是“first + x + last”,但这也不起作用。

for x in listofpersonfolders:
  file_list = drive.ListFile({'q': "\'x\' in parents and trashed=false"}).GetList()
  print file_list

也试过了

for x in listofpersonfolders:
  file_list = drive.ListFile({'q': "'x' in parents and trashed=false"}).GetList()
  print file_list

【问题讨论】:

  • 请向我们展示您尝试过的 for 循环。

标签: python list loops variables pydrive


【解决方案1】:

试试这个:

# Define string with placeholder for parent id.
request_template = "'{parent_id}' in parents and trashed=false"

for x in listofpersonfolders:
  # Replace the placeholder for parent_id with x in each iteration.
  file_list = drive.ListFile({'q': request_template.format(parent_id=x)}).GetList()
  print file_list

您可以查看此网站以获取有关字符串格式的更多信息:https://pyformat.info/

【讨论】:

  • 感谢您抽出时间提供帮助。我尝试了那个解决方案。尝试了一堆类似的线路。这就是我用这个得到的......叹息......我的剪切和粘贴是 800+ 字符太长,它返回“无效查询”谢谢你把我指向 pyformat.info。会检查出来。
  • 没问题!我只是仔细检查了查询,我认为发现了错误:文件夹 ID 必须用引号引起来。现在已更改 - 也许再试一次?
【解决方案2】:

这是一个解决方案

for x in listofpersonfolders:
    file_list = drive.ListFile({'q': "'{}' in parents and trashed=false".format(x)}).GetList()
print file_list

【讨论】:

    猜你喜欢
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 2016-10-31
    • 2012-11-24
    • 1970-01-01
    相关资源
    最近更新 更多