我目前正在使用Python脚本和jenkinsapi为Jenkins构建创建日志文件
下面的函数创建生成的控制台输出的文本文件并将其保存到网络位置。我正在寻找获得文件网络路径,以便它可以包括在定制的电子邮件通知
不知道你能不能帮我得到预期的结果。谢谢你
代码:
job_list = ['project_name1', 'project_name2', 'project_name3']
def create_log_file(job_list):
log_file_info = []
for job in job_list:
file_name = os.path.join('//network_location/folder/subfolder1/subfolder2/subfolder3/Jenkins_Build/buildlog/windows/', job + "_" + current_date + file_format)
file_content = get_console_output(job)
with open(file_name, 'w', encoding="utf-8") as f:
f.write(file_content)
log_file = ['{}: {}'.format(job, file_name.replace("/", "\\"))]
log_file_info.append(log_file)
return log_file_info
预期结果:
[['project_name1: \network_location\folder\subfolder1\subfolder2\subfolder3\Jenkins_Build\buildlog\windows\project_name1_2018-10-24.txt'], ['project_name2: \network_location\folder\subfolder1\subfolder2\subfolder3\Jenkins_Build\buildlog\windows\project_name2_2018-10-24.txt'], ['project_name3: \network_location\folder\subfolder1\subfolder2\subfolder3\Jenkins_Build\buildlog\windows\project_name3_2018-10-24.txt']]
实际结果:
[['project_name1: \\\\network_location\\folder\\subfolder1\\subfolder2\\subfolder3\\Jenkins_Build\\buildlog\\windows\\project_name1_2018-10-24.txt'], ['project_name2: \\\\network_location\\folder\\subfolder1\\subfolder2\\subfolder3\\Jenkins_Build\\buildlog\\windows\\project_name2_2018-10-24.txt'],
['project_name3: \\\\network_location\\folder\\subfolder1\\subfolder2\\subfolder3\\Jenkins_Build\\buildlog\\windows\\project_name3_2018-10-24.txt']]
我认为以下代码适用于您:
请注意开头的进口声明。当使用Path(文件名)时,您告诉解释器显式地将给定的字符串视为Path。 我还删除了
.format
语句,并用转义反斜杠更改了所有斜杠你的实际结果还可以。Python用两个反斜杠(\\)转义反斜杠字符。试着用print函数显示结果,你会发现它实际上符合你想要的
相关问题 更多 >
编程相关推荐