我正在使用 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() argument must be iterable
。我相信它是不可迭代的,因为 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)
关于python - 在 python 中什么是 <type 'revision' >,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34680330/