我正在使用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’>.关于如何让修订版号“可迭代”的任何想法?
最佳答案 < type’revision’>意味着您有一个
pysvn.Revision instance.如果您想要编写修订号,请使用它的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)