繁体   English   中英

使用python检查名称文件夹是否存在

[英]check whether a folder exists with name using python

如何使用python检查谷歌驱动器中是否存在名称为名称的文件夹?

我尝试使用以下代码:

import requests
import json

access_token = 'token'

url = 'https://www.googleapis.com/drive/v3/files'

headers = {
'Authorization': 'Bearer' + access_token
 }

response = requests.get(url, headers=headers)
print(response.text)
  • 您想知道文件夹是否存在于使用文件夹名称的 Google Drive 中。
  • 您想使用访问令牌和requests.get()来实现它。

如果我的理解是正确的,这个修改怎么样? 请将此视为几个答案之一。

改装要点:

  • 您可以使用过滤驱动器.files.list 文件的查询来搜索文件夹。
    • 在您的情况下,查询如下。
      • name='filename' and mimeType='application/vnd.google-apps.folder'
    • 如果您不想在垃圾箱中搜索,请在查询中添加and trashed=false
  • 为了确认文件夹是否存在,在这种情况下,它检查files的属性。 此属性是一个数组。 如果文件夹存在,则数组具有元素。

修改后的脚本:

import requests
import json

foldername = '#####' # Put folder name here.

access_token = 'token'
url = 'https://www.googleapis.com/drive/v3/files'
headers = {'Authorization': 'Bearer ' + access_token}  # Modified
query = {'q': "name='" + foldername + "' and mimeType='application/vnd.google-apps.folder'"}  # Added
response = requests.get(url, headers=headers, params=query)  # Modified
obj = response.json()  # Added
if obj['files']:  # Added
    print('Existing.')  # Folder is existing.
else:
    print('Not existing.')  # Folder is not existing.

参考:

如果我误解了你的问题,请告诉我。 我想修改它。

您可能会看到有关如何检查目标文件夹是否存在并返回其 ID 的 示例代码

def get_folder_id(drive, parent_folder_id, folder_name):
    """ 
        Check if destination folder exists and return it's ID
    """

    # Auto-iterate through all files in the parent folder.
    file_list = GoogleDriveFileList()
    try:
        file_list = drive.ListFile(
            {'q': "'{0}' in parents and trashed=false".format(parent_folder_id)}
        ).GetList()
    # Exit if the parent folder doesn't exist
    except googleapiclient.errors.HttpError as err:
        # Parse error message
        message = ast.literal_eval(err.content)['error']['message']
        if message == 'File not found: ':
            print(message + folder_name)
            exit(1)
        # Exit with stacktrace in case of other error
        else:
            raise

    # Find the the destination folder in the parent folder's files
    for file1 in file_list:
        if file1['title'] == folder_name:
            print('title: %s, id: %s' % (file1['title'], file1['id']))
            return file1['id']

同样在本教程中,您可以检查文件夹是否存在,如果不存在,则创建一个具有给定名称的文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM