我有以下python代码:
open_file=open("path to a file",'r')
from prettytable import PrettyTable
import csv
table1=PrettyTable(["COLUMN1","COLUMN2","COLUMN3"])
for lines in open_file:
temp=(lines.split("%")[1])
get_severity_no=temp.split(":")[0]
Description=temp.split(":")[1]
if "3" in get_severity_no:
GET_DATE=lines.split(";")[0]
table1.add_row([GET_DATE,get_severity_no,Description])
print(table1)
现在我从php调用这个脚本。 这是php代码。
<?php
$mystring = system('python get_files.py');
echo $mystring
?>
现在这是我得到的输出。
所有格式都已丢失。你可以告诉我应该怎样做才能做到这一点?我是php的新手,但对python很熟悉。
答案 0 :(得分:1)
在输出周围使用pre
标记,如下所示:
<br>
pre
代表“预先格式化的文本”,预标记呈现“纯文本”完全输入的方式,广泛用于显示代码,命令输出和其他ASCII格式化表格和网页上的形状(如你的)。 Pre标签将新行视为<img>
,保留重复空格(就像你在表中一样),处理&lt;和&gt;字面上而不是HTML标签,并使用固定宽度的字体。
您不希望始终使用oclib.h
标记,因为其中的HTML标记(例如#ifndef oclib_h
#define oclib_h
#import <Foundation/Foundation.h>
typedef enum {A, B, C} oc_enum_t;
void useSwiftClassInC();
#endif /* oclib_h */
)甚至无法呈现。它会在输入时显示 字面 的任何文字。
希望这有帮助,
答案 1 :(得分:1)
控制台和浏览器实际格式化输出的方式不同。
控制台代表\n
的新行,而浏览器需要正确的HTML标记<br>
。
空间也一样。控制台将打印尽可能多的空格,但浏览器/ HTML会删除连续的空格(因此只剩下一个空格)。
因此,如果您希望输出完全相同,则需要将换行符从\n
转换为<br>
- 您可以使用nl2br
功能。
关于空格,您可能希望将所有空格转换为不可破坏的空格,以告诉浏览器渲染连续的空格。您可以使用正则表达式执行此操作:preg_replace('/ /', ' ', $str);