Python中文
首页
教程
问答
标签
搜索
登录
注册
写入.CSV文件时出现问题?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个如下的文本文件:</p> <p>你知道吗地理列表.txt你知道吗</p> <pre><code>Receptor Name:I151T.B99990002_mus.pdbqt Ligand Name: LIGAND 1 Using random seed: 1896818552 mode | affinity | dist from best mode | (kcal/mol) | rmsd l.b.| rmsd u.b. -----+------------+----------+---------- 1 -10.7 0.000 0.000 2 -10.4 1.859 3.037 3 -10.1 1.992 3.474 Receptor Name: I151T.B99990001_mus.pdbqt Liang Name: LIGAND 1 Using random seed: 1896818552 mode | affinity | dist from best mode | (kcal/mol) | rmsd l.b.| rmsd u.b. -----+------------+----------+---------- 1 -9.5 0.000 0.000 2 -9.4 2.083 3.784 3 -9.0 2.471 8.360 4 -9.0 1.493 3.523 </code></pre> <p>我提取了带有模式“Receptor name:”的头文件,并通过regex将其与相应的值连接起来。然后我试着把它做成CSV文件。你知道吗</p> <pre><code>import os import re import csv import sys h=open("path/geoList.txt","r") totallog=[] for line in h: if line.startswith('Receptor Name:'): prefix=line elif re.search(r'^\s+\d', line): totallog.append(re.sub(r'\s+',';',((str(re.findall(r'\d+',((prefix.strip().split("/")[-1])[:-10]).split(".")[0]))+(prefix.strip().split("/")[-1])[:-10]+line).replace("']",";")).replace("['",'').strip())) with open("Hi.CSV", 'wb') as csvfile: logwriter = csv.writer(csvfile, delimiter=';', quoting=csv.QUOTE_MINIMAL) logwriter.writerow(['MUTANTPOSITION','MUTANT','RANK','AFFINITY (kcal/mol)','DistFromRmsd l.b.','BestModeRmsd u.b.']) k=sorted(totallog,key=lambda x:float(x.split(';')[-3])) for i in k: logwriter.writerow(i) </code></pre> <p>我的输出:</p> <pre><code>MUTANTPOSITION;MUTANT;RANK;AFFINITY (kcal/mol);DistFromRmsd l.b.;BestModeRmsd u.b. 1;5;1;";";I;1;5;1;T;.;B;9;9;9;9;0;0;0;2;";";1;";";-;1;0;.;7;";";0;.;0;0;0;";";0;.;0;0;0 1;5;1;";";I;1;5;1;T;.;B;9;9;9;9;0;0;0;2;";";2;";";-;1;0;.;4;";";1;.;8;5;9;";";3;.;0;3;7 1;5;1;";";I;1;5;1;T;.;B;9;9;9;9;0;0;0;2;";";3;";";-;1;0;.;1;";";1;.;9;9;2;";";3;.;4;7;4 1;5;1;";";I;1;5;1;T;.;B;9;9;9;9;0;0;0;1;";";1;";";-;9;.;5;";";0;.;0;0;0;";";0;.;0;0;0 1;5;1;";";I;1;5;1;T;.;B;9;9;9;9;0;0;0;1;";";2;";";-;9;.;4;";";2;.;0;8;3;";";3;.;7;8;4 1;5;1;";";I;1;5;1;T;.;B;9;9;9;9;0;0;0;1;";";3;";";-;9;.;0;";";2;.;4;7;1;";";8;.;3;6;0 1;5;1;";";I;1;5;1;T;.;B;9;9;9;9;0;0;0;1;";";4;";";-;9;.;0;";";1;.;4;9;3;";";3;.;5;2;3 </code></pre> <p>但是,这里每个字符用“;”分隔。我真的不知道这是怎么回事。你知道吗</p> <p>我希望输出如下:</p> <pre><code>MUTANTPOSITIONMUTANTRANKAFFINITY (kcal/mol)DistFromRmsd l.b.BestModeRmsd u.b. 151;I151T.B99990002;1;-10.7;0.000;0.000 151;I151T.B99990002;2;-10.4;1.859;3.037 151;I151T.B99990002;3;-10.1;1.992;3.474 151;I151T.B99990001;1;-9.5;0.000;0.000 151;I151T.B99990001;2;-9.4;2.083;3.784 151;I151T.B99990001;3;-9.0;2.471;8.360 151;I151T.B99990001;4;-9.0;1.493;3.523 </code></pre> <p>如果有人知道怎么做,你能帮我解决这个问题吗。你知道吗</p> <p>提前谢谢</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>代码中的最后一个for循环是遍历列表中每个字符串的每个字符,这将分隔字符。将该部件替换为以下部件,它应该可以工作:</p> <pre><code>for i in k: logwriter.writerow(i.split(';')) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何在乒乓球比赛中预测球的轨迹,对于AI球拍预测?
4 回答
如何在乒乓球游戏中阻止球
8 回答
如何在乘法和模中不乘空间?
9 回答
如何在乘法和除以2个不同的数字之间进行交换?
5 回答
如何在也是数据一部分的单个字符上拆分大字符串
6 回答
如何在乾草堆中找到針,有更好的解決方案嗎?
2 回答
如何在事件wxWidgets中传递自定义数据
7 回答
如何在事件中使用lambda i=i?
9 回答
如何在事件中心只接收最近的数据
9 回答
如何在事件发生之前保持云函数运行?
2 回答
如何在事件发生后使页面重定向到同一页面
7 回答
如何在事件回调之间保持python生成器的状态
3 回答
如何在事件处理程序(pythonsocket、sphinx)中保留docstring
8 回答
如何在事件处理程序中更改wxRichTextCtrl的光标位置?
4 回答
如何在事件处理程序中访问外部对象?
1 回答
如何在事件循环中将协程打包为正常函数?
4 回答
如何在事件循环之外运行协同程序?
7 回答
如何在事件循环结束时为并发未来的所有线程调用类方法?
5 回答
如何在事件文件中只保留一份摘要?
9 回答
如何在事件模板中添加事件
9 回答