回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有以下两种类型的txt文件:</p>
<p>文件1</p>
<pre><code>Sample1012, Male, 36, Stinky, Bad Hair
Sample1043, Female, 28, Hot, Short Hair, Hot Body, Hates Me
Sample23905, Female, 42, Cougar, Long Hair, Chub
Sample123, Male, 32, Party Guy
</code></pre>
<p>文件2</p>
^{pr2}$
<p>我只想编写一个简单的Python脚本来基于sample字段连接这些文件,但是数据列的随机数量一直存在问题。例如,我最后得出:</p>
<pre><code>Sample1012, Male, 36, Stinky, Bad Hair, ALIVE, Sample1012, Alone
Sample1043, Female, 28, Hot, Short Hair, Hot Body, Hates Me, DEAD, Sample1043, Too Hot, Exploded
Sample23905, Female, 42, Cougar, Long Hair, Chub, ALIVE, Sample23905, STD
Sample123, Male, 32, Party Guy, DEAD, Sample123, Car Accident, Drunk, Dumb
</code></pre>
<p>当我想要的是:</p>
<pre><code>Sample1012, Male, 36, Stinky, Bad Hair, EMPTY COLUMN, EMPTY COLUMN, ALIVE, Sample1012, Alone
Sample1043, Female, 28, Hot, Short Hair, Hot Body, Hates Me, DEAD, Sample1043, Too Hot, Exploded
Sample23905, Female, 42, Cougar, Long Hair, Chub, EMPTY COLUMN, ALIVE, Sample23905, STD
Sample123, Male, 32, Party Guy, EMPTY COLUMN, EMPTY COLUMN, EMPTY COLUMN, DEAD, Sample123, Car Accident, Drunk, Dumb
</code></pre>
<p>基本上,我只是用.readlines()读取两个文件,然后用简单的“==”将相关列与示例ID进行比较,如果为真,那么它将打印出第一个文件和第二个文件中的行。在</p>
<p>不知道如何使用len()来确定file1中的最大列数,以便在从另一个文件追加行之前,如果不是max number of columns,那么我可以在每一行末尾说明这个值(前提是“==”为真)。在</p>
<p>非常感谢任何帮助。在</p>
<p>更新:</p>
<p>我现在得到的是:</p>
<pre><code>import sys
import csv
usage = "usage: python Integrator.py <table_file> <project_file> <outfile>"
if len(sys.argv) != 4:
print usage
sys.exit(0)
project = open(sys.argv[1], "rb")
table = open(sys.argv[2], "rb").readlines()
outfile = open(sys.argv[3], "w")
table[0] = "Total Table Output \n"
newtablefile = open(sys.argv[2], "w")
for line in table:
newtablefile.write(line)
projectfile = csv.reader(project, delimiter="\t")
newtablefile = csv.reader(table, delimiter="\t")
result = []
for p in projectfile:
print p
for t in newtablefile:
#print t
if p[1].strip() == t[0].strip():
del t[0]
load = p + t
result.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>(load)
for line in result:
outfile.write(line)
outfile.close()
</code></pre>
<p>不能让for循环一起工作-不要介意在车站的愚蠢的东西。第一个文件中有一个空白行。在</p>