如何读取文件并将以下行的信息转换为python词典:
文件:
orig sorted(list(set(loadDB('db/path_orig'))))
dest sorted(list(set(loadDB('db/path_dest'))))
md_dest ''.join(loadDB('db/path_md_dest'))
main ''.join(loadDB('db/main_batch'))
copy ''.join(loadDB('db/copy_batch'))
预期结果:
option = {
'orig': sorted(list(set(loadDB('db/path_orig')))),
'dest': sorted(list(set(loadDB('db/path_dest')))),
'md_dest': ''.join(loadDB('db/path_md_dest')),
'main': ''.join(loadDB('db/main_batch')),
'copy': ''.join(loadDB('db/copy_batch'))
}
我试过了:
with open('text') as f:
d = dict(x.rstrip().split(None, 1) for x in f)
结果:
d = {
'main': "''.join(loadDB('db/main_batch')),",
'copy': "''.join(loadDB('db/copy_batch'))",
'dest': "sorted(list(set(loadDB('db/path_dest')))),",
'md_dest': "''.join(loadDB('db/path_md_dest')),",
'orig': "sorted(list(set(loadDB('db/path_orig')))),"
}
答案 0 :(得分:0)
这样的东西?
import ast
with open('text','r') as f:
d1 = {line.strip().split(' :: ')[0]:line.strip().split(' :: ')[1] for line in f}
d2={}
for k,v in d1.iteritems():
d2[k] = ast.literal_eval(v)
答案 1 :(得分:0)
这是一个开箱即用的解决方案,假设您在类Unix环境中运行。
首先在命令行上运行以下命令:
echo 'option = {' > file.py
sed 's/ /: /' file >> file.py
echo '}' >> file.py
您现在已经从原始file.py
创建了可导入的Python脚本file
。你现在可以做
import file
在您的驱动程序脚本中。
如果格式化很重要,您可能希望使用以下sed
命令作为替代:
sed -e 's/ /: /' -e 's/^/ /' file.txt