读取配置文件txt, 如果存在/* */的注释行,不要读取; 读取其他包含“:”以";" 截尾的行, 用python 举例
时间: 2024-09-09 16:12:10 浏览: 68
要读取一个文本配置文件,并且忽略带有`/* */`注释的行,同时读取其他以`:`为分隔符并以`;`结尾的行,你可以使用Python中的文件操作和字符串处理功能来实现。下面是一个简单的例子:
```python
def read_config_file(file_path):
config_data = {}
with open(file_path, 'r') as file:
for line in file:
# 忽略注释行
if '/*' in line and '*/' in line:
continue
# 去除注释和空白字符
line = line.split('/*')[0].split('*/')[0].strip()
# 查找':'分隔的键值对,以';'结尾
if ':' in line and line.endswith(';'):
key, value = line.split(':', 1)
key = key.strip()
value = value.strip().rstrip(';')
config_data[key] = value
return config_data
# 假设有一个名为config.txt的文件
config = read_config_file('config.txt')
print(config)
```
这个函数`read_config_file`将打开指定路径的文件,并逐行读取。它首先检查行是否包含注释标记`/*`和`*/`,如果都存在则忽略该行。接着,它将行中的注释部分去除,并检查剩余的行是否以`:`分隔且以`;`结尾。如果这些条件都满足,它会将行分割为键值对,并将它们存储在一个字典中返回。
请确保你的`config.txt`文件格式正确,例如:
```
key1: value1; /* 这是注释 */
key2: value2;
key3: /* 这也是注释 */value3;
```
输出将是:
```
{'key2': 'value2'}
```
注:这个函数假设每行只有一个键值对,并且键值对不跨行。
阅读全文