Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parsing Python拆分文本返回一个str和一个str列表_Parsing_Python 3.x_Text - Fatal编程技术网

Parsing Python拆分文本返回一个str和一个str列表

Parsing Python拆分文本返回一个str和一个str列表,parsing,python-3.x,text,Parsing,Python 3.x,Text,我想知道是否有人可以帮助我将文本文件拆分为键、值对的语法 Abbasso: termine con cui si indicano gli ambienti situati sotto il ponte di coperta. Abbattuta: manovra che consiste nel puggiare sino a fare prendere il vento alle vele sulle mure opposte. Abbisciare: (fr.: prendre la

我想知道是否有人可以帮助我将文本文件拆分为键、值对的语法

Abbasso: termine con cui si indicano gli ambienti situati sotto il ponte di coperta. 
Abbattuta: manovra che consiste nel puggiare sino a fare prendere il vento alle vele sulle mure opposte. 
Abbisciare: (fr.: prendre la biture; ingl.: to coil) stendere un cavo o una catena come fosse una biscia in modo da evitare che si imbrogli successivamente, quando sarà posto in opera. 
Abbordo: (fr.: abordage; ingl.: collision) collisione in mare. Sinonimo, poco usato, di accosto e di abbordaggio. 
Abbrivo: (fr.: erre; ingl.: way-on) inerzia dell'imbarcazione a continuare nel suo movimento anche quando è cessata la spinta propulsiva, sia essa a vela che a motore. 
Abbuono: (fr.: bonification, rating; ingl.: rating) compenso: (o vantaggio) dato ad una imbarcazione per permetterle di gareggiare più equamente: (ad esempio abbuono per anzianità di costruzione dello scafo).
此时我的函数给我一个键str,但给我一个值类型(list)。相反,我希望这个值也是一个str。我得到的问题是,应该是a的值在每个冒号上拆分,而不是只在最左边的冒号上拆分

def create_dict():
   eng_fr_it_dict={}
    f_name = "dizionario_della_vela.txt"

    handle = open(f_name, encoding = 'utf8')
    for line in handle:
        #print(line)
        if line.startswith(" ") : continue
        line.lstrip()
        terms = line.split(": ")
        #print(terms[1:])       
        term = terms[0].lstrip()
        expan = terms[1:]
        print(type(term), type(expan))
        eng_fr_it_dict[term] = eng_fr_it_dict.get(term, expan)

    with open("eng_fr_it_dict.txt", "wb") as infile:
        pickle.dump(eng_fr_it_dict,infile)

    print(eng_fr_it_dict)
你能建议一个更聪明的方法来做这件事吗?或者我必须想出如何将str列表转换成单个str?我认为有一个内置的分裂功能,但显然不是

file = open("dizionario_della_vela.txt", "r")
data = file.read()
file.close()
data = data.split("\n") # getting every line as seperate list
myDict = {}
for line in data:
    line = line.split(":")
    key = line[0] # getting first element as key
    value = ":".join(line[1:]) # joins elements (starting with second) with 
                               # ":". We need this because previous line 
                               # was splitted by ":" to get your key. This
                               # is where "string" value is produced.
    myDict[key] = value

for key in myDict.keys():
    print(myDict[key])