gpt4 book ai didi

python - 将带有标题的列添加到制表符分隔的文本文件?

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:40 26 4
gpt4 key购买 nike

我意识到有一种使用“awk”添加列的方法。

但我不太熟悉这种替代方法,所以我想问一下是否有一种方法可以使用 Python 向制表符分隔的文本文件添加一列?

具体来说,这是我需要在其中添加一列的场景:

我有如下格式的数据(我自己看了一下,格式可能不是很清楚,但是电话,邮箱,网址对应的是不同的列):

name    phone   email   website
D G Albright M.S.
Lannister G. Cersei M.A.T., CEP 111-222-3333 cersei@got.com www.got.com
Argle D. Bargle Ed.M.
Sam D. Man Ed.M. 000-000-1111 dman123@gmail.com www.daManWithThePlan.com
Sam D. Man Ed.M.
Sam D. Man Ed.M. 111-222-333 dman123@gmail.com www.daManWithThePlan.com
D G Bamf M.S.
Amy Tramy Lamy Ph.D.

我正在为第一列编写解析器。我想将“实践领域”(在本例中为“CEP”)添加到名为“区域”的新列中。我遍历该文件,并使用 pop 函数将该区域与第一列的其余部分分开。然后我将其添加到一个列表中,该列表在函数中消失,因为它没有添加到电子表格中。

这是我的脚本:

def parse_ieca_gc(s):  

### HANDLE NAME ELEMENT ######

degrees = ['M.A.T.','Ph.D.','MA','J.D.',
'Ed.M.', 'M.A.', 'M.B.A.',
'Ed.S.', 'M.Div.', 'M.Ed.',
'RN', 'B.S.Ed.', 'M.D.', 'M.S.']
degrees_list = []

# check whether the name string has
# an area of practice by
# checking if there's a comma separator
if ',' in s['name']:

# separate area of practice from name
# and degree and bind this to var 'area'
split_area_nmdeg = s['name'].split(',')
area = split_area_nmdeg.pop()

# Split the name and deg by spaces.
# If there's a deg, it will match with one
# of elements and will be stored deg list.
# The deg is removed name_deg list
# and all that's left is the name.
split_name_deg = re.split('\s',split_area_nmdeg[0])
for word in split_name_deg:
for deg in degrees:
if deg == word:
degrees_list.append(split_name_deg.pop())
name = ' '.join(split_name_deg)

预期输出

name    phone   email   website    area   degrees
D G Albright M.A.
Lannister G. Cersei 111-222-3333 cersei@got.com www.got.com CEP M.A.T.
Argle D. Bargle Ed.M.
Sam D. Man 000-000-1111 dman123@gmail.com www.daManWithThePlan.com Ed.M.
Sam D. Man Ed.M.
Sam D. Man 111-222-333 dman123@gmail.com www.daManWithThePlan.com Ed.M.
D G Bamf M.S.
Amy Tramy Lamy Ph.D.

此代码也不起作用:

fieldnames = ['name','degrees','area','phone','email','website']
with open('ieca_first_col_fake_text.txt','r') as input:
with open('new_col_dict.txt','w') as output:
dict_writer = csv.DictWriter(output, fieldnames, delimiter = '\t')
dict_reader = csv.DictReader(input, delimiter = '\t')
#dict_writer.writeheader(fieldnames)
for row in dict_reader:
print row
dict_writer.writerow(fieldnames)
dict_writer.writerow(row)

最佳答案

请在此处查看答案,制表符分隔的文件类似于以制表符作为分隔符的 CSV。

How to add a new column to a CSV file using Python?

关于python - 将带有标题的列添加到制表符分隔的文本文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17528274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com