我没有向您展示的代码,因为我不知道如何开始。 目前的目标是至少能够从包含一些数据的文件创建令牌 例如:
Name : Sid
data : Lazy Developer
%description
This is a packaging file
%install
Enter the location to install the package.
并且python代码应该能够从该文件创建标记,然后在需要时根据输入打印数据。
如果getData()是函数,那么
getData('name')应输出“Sid” GetData('description')应该给出它下面的文本。
答案 0 :(得分:0)
要从file.txt
检索数据:
data = {}
with open('file.txt', 'r') as f: # opens the file
for line in f: # reads line by line
key, value = line.split(' : ') # retrieves the key and the value
data[key.lower()] = value.rstrip() # key to lower case and removes end-of-line '\n'
然后,data['name']
返回'Sid'
。
修改强> 随着问题的更新,这是新的解决方案:
data = {}
with open('file.txt', 'r') as f:
header, *descriptions = f.read().split('\n\n')
for line in header.split('\n'):
key, value = line.split(' : ')
data[key.lower()] = value.rstrip()
for description in descriptions:
key, value = description.split('\n', 1)
data[key[1:]] = value
print(data)
如果行之间或键的末尾有一些空格,你可能需要调整它...
执行此操作的较短方法可能是使用regex和方法re.group()
。
答案 1 :(得分:-2)
正如评论员所说,你的问题并不适合网站。但是,我会试着指出你正确的方向。
您的file.txt实际上是一个yaml文档。见this answer
import yaml
with open('file.txt', 'r') as f:
doc = yaml.load(f)
print(doc["Name"])
我还强烈建议您阅读this section的Dive Into Python(以及阅读整本书)。将来尝试一些代码并与您的问题分享。