0

我刚开始使用/学习 Python 并且有一些问题。

我有一个由报告工具生成的文本文件。该文件包含一些这样的东西。有很多东西基本上遵循与下面写的相同的格式。

格式= {
Window_Type="Tabular",
Tabular= { Num_row_labels=5 } }

此文件中有命名值属性。例如,Window_Type 是具有值 Tabular 的属性的名称。同样,对于 Tabular 命名属性,其关联值为 5。

我想要做的是打开文件。

  1. 检查 Window_Type 是否为表格
  2. 如果是,则检查与表格关联的 Num_row_labels。
  3. 如果 Num_row_lables 的值大于或等于 5,则打印文本文件的名称和该文件所在的文件夹的路径。

我在 Eclipse 3.7.2 IDE 中使用 Python 3.2。

对于测试部分,我在 IDE 中导入了我的文本文件,并使用下面的代码来读取文件。将来我应该能够遍历扩展名为 mrk 的文件所在的文件夹。(这将是一个已知目录,因为我们将这些文件保存在其中。)请帮助我。非常感谢!

import os.path
fn = os.path.join(os.path.dirname(__file__), 'Multitab.mrk')
with open(fn, 'r') as file: 
    print(file.read())
4

1 回答 1

0

请注意,这个答案是一个非常肮脏的黑客。这种格式几乎类似于 JSON 格式,这促使我编写了一个 RE 来转换字符串,以便它可以被 json 解析器干净地解析。这就是我所做的:

import re
import json

s = """Format= {
Window_Type="Tabular",
Tabular= { Num_row_labels=5 } }"""

s = "{" + re.sub(r'([a-zA-Z0-9_]+)=',r'"\1":', s) + "}"
obj = json.loads(s)

if obj['Format']['Window_Type'] == "Tabular":
    print "Its tabular!"
    numrows = obj['Format']['Tabular']['Num_row_labels']
    print "Numrows:", numrows
    if numrows >= 5:
        print "Print this fileName"

输出:

Its tabular!
Numrows: 5
Print this fileName
于 2012-06-20T18:00:37.473 回答