gpt4 book ai didi

python - 无法在 Python 上使用 Dropbox API 区分文件添加和文件删除

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:43 25 4
gpt4 key购买 nike

我编写了一个 python 脚本来检查 Dropbox 文件夹中的文件添加/删除。 delta API

Delta Entries: Each entry is a 2-item list of one of following forms:

[path, metadata]:

[path, nil]

每个条目都指向一个已更改(创建/修改/删除)的文件

当文件存在于 Dropbox 文件夹中时元数据属性为非nil,当文件不存在时为nil,即当它已被删除时(或左右)我明白了,如果我错了请纠正我)

因此,为了找到创建的文件,我可以遍历条目列表并检查每个条目的第二个属性是否为非nil

但是,当我删除 Dropbox 文件夹中的文件后

for entry in next_cursor['entries']:
print entry[0]
print entry[1]

它打印

./filename
None

None,而不是 nil。所以我对'None'而不是'nil'进行了字符串比较,但即使输入1是“无”比较失败。这让我很困惑。

我的整个代码如下。

import dropbox
import sys

access_token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx'
client = dropbox.client.DropboxClient(access_token)

curr_cursor_file = open("cursor.txt", "r")
curr_cursor = curr_cursor_file.read()
curr_cursor_file.close()

next_cursor = client.delta(curr_cursor)
#print next_cursor
curr_cursor_file = open("cursor.txt", "w")
curr_cursor_file.write(next_cursor['cursor'])
curr_cursor_file.close()

if len(next_cursor['entries']) > 0:
for entry in next_cursor['entries']:
if entry[1] != "None":
print "File added!"
print entry[0]
print entry[1]
else:
print "No new files have been added. But files have been removed."
else:
print "No files have changed."

即,即使 entry[1] 打印 None,它也表明 File 已被添加!

最佳答案

在 Python 中,None 是一个特殊常量,其值通常称为 nullnil 值。出于某种原因,DropBox 文档在这种情况下使用术语 nil 而不是 Python 的术语 None

请注意,None 不是字符串。 None == "None" 将返回 false。因此,如果您有 entry[1] != "None",则需要使用 entry[1] != None

关于python - 无法在 Python 上使用 Dropbox API 区分文件添加和文件删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19900578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com