(用python语言来写)请帮我新建一个文件,文件里面包含了以a,b,c,d为列名的四列,帮我把每一个化学分子的smiles写入a这一列,毒性信息写入b这一列,svg图像,在存放svg图像之前先把svg图像转换成字符串形式再写入c这一列,预测值写入d这一列。我的代码是每运行一次输出一个化学分子的结果,请帮我每得到一个结果就写进去一下。
时间: 2024-04-08 08:35:28 浏览: 84
当你每次运行代码并得到一个结果时,你可以使用`csv`模块将结果写入CSV文件。以下是一个示例代码,演示了如何创建一个CSV文件并按要求写入每个结果:
```python
import csv
import xml.etree.ElementTree as ET
def write_result_to_csv(smiles, toxicity, svg_filename, prediction):
# 将SVG图像转换为字符串格式
tree = ET.parse(svg_filename)
root = tree.getroot()
svg_string = ET.tostring(root, encoding='utf-8').decode('utf-8')
# 写入结果到CSV文件
with open('results.csv', 'a', newline='') as file:
writer = csv.writer(file)
writer.writerow([smiles, toxicity, svg_string, prediction])
# 示例运行代码
smiles = 'C1=CC=CC=C1'
toxicity = 'low'
svg_filename = 'molecule.svg'
prediction = 0.85
write_result_to_csv(smiles, toxicity, svg_filename, prediction)
```
在这个例子中,我们定义了一个`write_result_to_csv()`函数,该函数接受化学分子的SMILES表示、毒性信息、SVG图像的文件名以及预测值作为参数。在函数内部,我们使用`ET.parse()`方法解析SVG文件,并将其转换为字符串格式。然后,我们打开名为`results.csv`的CSV文件,并使用`csv.writer`对象将结果写入文件中的每一行。
请注意,我们使用了名为`results.csv`的CSV文件,并使用`'a'`模式打开文件,以便每次调用`write_result_to_csv()`函数时,结果都会追加到文件的末尾。如果你希望每次运行代码时都创建一个新的CSV文件,请在调用`write_result_to_csv()`函数之前先删除或重命名现有的`results.csv`文件。
确保在运行代码之前,你已经安装了`csv`模块和`xml.etree.ElementTree`模块。你可以使用`pip install csv`和`pip install xml.etree.ElementTree`命令进行安装。
阅读全文