我有一个以下格式的tsv文件:
first 44 90 org
second 80 49 sport
third 50 52 NIL
该文件由以下代码编写:
id = first
before = 44
after = 90
taregt = org
with open('/path/to/file.tsv', 'w') as f:
result = u'\t'.join([
id,
Before,
After,
target])
f.write(result+'\n')
我想将中间两列读成两个字典,分别为value
和第一列读为key
。我有以下示例可编译代码,但是它将值存储为None
。
start = {}
end = {}
with open('/path/to/file.tsv', 'rd') as f:
for line in f:
parts = line.decode('utf-8').split('\t')
key = parts[0]
print(key)
start[key] = parts[1]
end[key] = parts[2]
print(key , start.get(key), end.get(key))
打印输出为:
(u'(first)',None,None)
我正在使用python 2.7。先感谢您。
答案 0 :(得分:0)
对我来说,它就像是一种魅力。
检查是否使用正确的模式读取文件。
答案 1 :(得分:0)
Python中没有rd
模式。使用rb
或rU
。您的代码可以正常工作。
start = {}
end = {}
with open('path to file', 'rb') as f:
for line in f:
parts = line.split('\t')
key = parts[0]
# print(key)
# print parts
start[key] = parts[1]
end[key] = parts[2]
print(key , start.get(key), end.get(key))