我能够创建一个csv文件与必要的头,然后附加与输出。现在我想重新打开csv,创建另一个头,然后根据if
,else
条件将数据添加到行中。在
当我将结果打印到控制台时,我得到了所需的输出(如下所示),但是当我试图将输出附加到csv文件时,我没有看到相同的结果。在
Title: update 1
Added or Deleted Files: True
Title: update 2
Added or Deleted Files: False
Title: update 3
Added or Deleted Files: False
我相信在打开csv文件时,if
条件是如何执行的,但我似乎无法判断出哪里出了问题。新列Add or Deleted Files
已创建,但添加到其下的行的值与我在控制台中获得的输出不匹配,这是正确的输出。Added or Deleted Files
列下的输出都是True
,而不是控制台输出中显示的True
、False
、False
。拉请求的Title
列和标题都被正确捕获,新的csv文件中的新列也是如此,Added or Deleted Files
下的值不正确(如下面的输出所示)。在
代码包含打印到控制台和输出到csv。提前谢谢你的帮助。最后的with open
语句打开了现有的csv,创建了一个新的csv,然后添加了列,但是不正确的行数据给我带来了麻烦。在
with open(filename, 'w+', newline='') as f:
csv_writer = csv.writer(f)
csv_writer.writerow(['Title'])
for prs in repo.pull_requests():
getlabels = repo.issue(prs.number).as_dict()
if 'ready-to-merge' in [getlabels['name'] for getlabels in getlabels['labels']] and 'Validation Succeeded' in [getlabels['name'] for getlabels in getlabels['labels']]:
changes = repo.pull_request(prs.number).as_dict()
#print to console statement
print('Title: ', changes['title'])
#output to csv
with open(filename,'a+',newline='') as f:
csv_writer = csv.writer(f)
csv_writer.writerow([changes['title']])
#print to console
if 'added' in (data.status for data in repo.pull_request(prs.number).files()) or 'removed' in (data.status for data in repo.pull_request(prs.number).files()):
print('Added or Deleted Files: True')
else:
print('Added or Deleted Files: False')
#output to new csv with added column and new data
with open(filename, 'r') as csvinput:
with open(filename2, 'w') as csvoutput:
writer = csv.writer(csvoutput, lineterminator="\n")
reader = csv.reader(csvinput)
all = []
row = next(reader)
row.append('Added or Deleted Files')
all.append(row)
for row in reader:
all.append(row)
if 'added' in (data.status for data in repo.pull_request(prs.number).files()) or 'removed' in (data.status for data in repo.pull_request(prs.number).files()):
row.append('True')
else:
row.append('False')
writer.writerows(all)
你的代码结构被破坏了。发生的情况如下:
因此,您的结果文件是在上一次请求迭代中被完全写入的,并且最后一次请求的第2列的值被一致地复制到每一行。在
你的代码应该是:
即:
repo.pull_requests()
中的元素时,一次一行写入两个文件相关问题 更多 >
编程相关推荐