使用pydrive在循环中使用包含文件夹id的变量列出文件

时间:2017-02-03 15:28:41

标签: python list loops variables pydrive

我正在使用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

2 个答案:

答案 0 :(得分:0)

试试这个:

# 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/

答案 1 :(得分:0)

这是一个解决方案

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