Python 即使输出与原始输出相同,代码仍保持保存文档?
在我下面的代码中,出于某种原因,它一直将输出数据写入文件,即使我的输出数据与新生成的数据相同 我正在尝试使它只在不同的时候保存,为了重新创建我的问题,请至少运行脚本三次,并且它不应该再次打印Python 即使输出与原始输出相同,代码仍保持保存文档?,python,python-2.7,csv,if-statement,for-loop,Python,Python 2.7,Csv,If Statement,For Loop,在我下面的代码中,出于某种原因,它一直将输出数据写入文件,即使我的输出数据与新生成的数据相同 我正在尝试使它只在不同的时候保存,为了重新创建我的问题,请至少运行脚本三次,并且它不应该再次打印 代码示例 有没有解决此问题的方法?以下内容读取整个文件,而您可能只想读取一行: old_html = old_html.read() 另外,我个人觉得这种重复使用变量名的方式非常令人困惑。这是因为您打开了文件,然后进行比较,因为它是相同的,所以在文件中什么也不保存 比较代码底部部分后打开文件: impor
代码示例
有没有解决此问题的方法?以下内容读取整个文件,而您可能只想读取一行:
old_html = old_html.read()
另外,我个人觉得这种重复使用变量名的方式非常令人困惑。这是因为您打开了文件,然后进行比较,因为它是相同的,所以在文件中什么也不保存 比较代码底部部分后打开文件:
import csv
def get_html_table(data):
s = """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
</head>
<body>
<table id="gradient-style">
<tbody>\n"""
for row in data:
s += ' <tr>'
for counter, cell in enumerate(row):
s += r'<td>{}</td>'.format(cell)
s += '</tr>\n'
s += """ </tbody>
</table>
</body>
</html>"""
return s
with open('testoutput.html', 'rb') as old_html:
old_html = old_html.read()
with open('random.csv') as ifile:
data = []
for counter, row in enumerate(csv.reader(ifile)):
if counter != 0:
datatoapp = [row[0], row[1], row[2], row[3]]
data.append(datatoapp)
html_data = get_html_table(data)
if old_html != html_data:
if html_data:
with open('testoutput.html', "wb") as ofile:
ofile.write(html_data)
导入csv
def get_html_表格(数据):
s=”“”
标题
\n“
对于数据中的行:
s+=''
对于计数器,枚举(行)中的单元格:
s+=r'{}'。格式(单元格)
s+='\n'
s+=“”“
"""
返回s
将open('testoutput.html','rb')作为旧的html:
old_html=old_html.read()
打开('random.csv')作为ifile:
数据=[]
对于计数器,枚举(csv.reader(ifile))中的行:
如果计数器!=0:
datatoapp=[行[0],行[1],行[2],行[3]]
data.append(datatoapp)
html\U数据=获取html\U表格(数据)
如果是旧的_html!=html_数据:
如果是html_数据:
以open('testoutput.html',“wb”)作为文件:
ofile.write(html_数据)
希望这有帮助:)-Hyflex我试图比较整个文件,而不仅仅是一行。
old_html = old_html.read()
import csv
def get_html_table(data):
s = """<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
</head>
<body>
<table id="gradient-style">
<tbody>\n"""
for row in data:
s += ' <tr>'
for counter, cell in enumerate(row):
s += r'<td>{}</td>'.format(cell)
s += '</tr>\n'
s += """ </tbody>
</table>
</body>
</html>"""
return s
with open('testoutput.html', 'rb') as old_html:
old_html = old_html.read()
with open('random.csv') as ifile:
data = []
for counter, row in enumerate(csv.reader(ifile)):
if counter != 0:
datatoapp = [row[0], row[1], row[2], row[3]]
data.append(datatoapp)
html_data = get_html_table(data)
if old_html != html_data:
if html_data:
with open('testoutput.html', "wb") as ofile:
ofile.write(html_data)