在 Python 中,<type 'revision'> 是什么意思?

4

我正在使用pysvn从Subversion日志历史记录中提取svn日志信息(作者,日期,时间,版本)。我正在使用以下代码:

client = pysvn.Client()
client.callback_get_login 
commit_messages = client.log("url")
log_list = []
for i, commit in enumerate(commit_messages):
    rev = commit.revision
    auth = commit.author
    t = time.ctime(commit.date)
    mess = commit.message
    log_list.append(rev)
    log_list.append(auth)
    log_list.append(t)
    log_list.append(mess)
log_file = open("extracted_log_history",'wb')
wr = csv.writer(log_file, dialect = 'excel')
for item in log_list:
    wr.writerows(item)

我发现这个代码行不起作用,会返回以下的错误信息:TypeError: writerows() 的参数必须是可迭代对象。我认为它不可迭代是因为rev = commit.revision返回的是一个<type 'revision'>,而其他变量(auth、t、mess)都是<type 'str'>。有什么想法可以让版本号"可迭代"吗?


wr.writerows() 期望一个行的列表。我确定您希望每次迭代仅添加一行。但您还将列放入单独的行中。 - Martijn Pieters
1个回答

1
"

<type 'revision'> 表示您有一个 pysvn.Revision 实例。如果您想要写入修订版本号,请使用其 revision.number 属性。

然而,您的代码还有其他问题。您正在将所有列作为单独的行添加到 log_list 中,而不是作为一列,并且您正在尝试将每一行作为序列行写入CSV中。不要使用csv.writerows(),并在处理修订版时即时写入行

"
client = pysvn.Client()
client.callback_get_login
with open("extracted_log_history",'wb') as log_file:
    wr = csv.writer(log_file)
    for commit in client.log("url"):
        rev = commit.revision.number
        auth = commit.author
        t = time.ctime(commit.date)
        mess = commit.message
        row = [rev, auth, t, mess]
        wr.writerow(row)

我明白你的意思。感谢你的帮助和快速回复。我在Python方面仍然是个业余爱好者。 - robrwill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接