Python为字典读取存档

2024-09-30 22:18:02 发布

您现在位置:Python中文网/ 问答频道 /正文

如何读取文件并将以下行的信息转换为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'))

预期结果:

^{pr2}$

我试过了:

^{3}$

结果:

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')))),"
}

Tags: 文件path信息dbmainbatchmdlist
2条回答

像这样?在

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)

这是一个开箱即用的解决方案,假设您运行在类Unix的环境中。在

首先在命令行上运行以下命令:

echo 'option = {' > file.py
sed 's/ /: /' file >> file.py
echo '}' >> file.py

现在,您已经从原始的file创建了一个可导入的Python脚本file.py。你现在可以做了

^{pr2}$

在你的驱动程序脚本中。在

如果格式化很重要,您可能需要使用以下sed命令作为替代:

sed -e 's/ /: /' -e 's/^/    /' file.txt

相关问题 更多 >