2017-02-06 9 views

答えて

1

あなたは正規表現を使用することができますし、あなたのファイルを閉じるときは、コードのいくつかの行を救うことができるので、私は強くあなたのファイルを開くにはwithを使用することをお勧め。

import re 
path = 'my_file.cs' 
var_name = 'str' 
with open(path) as f: 
    for line in f: 
     match = re.search(r'{} = "(.*?)"'.format(var_name), line) 
     if match: 
      print('{}: {}'.format(var_name, match.group(1))) 

出力:この場合

str: Hello world 

、私はあなたのファイルがあなたのpythonファイルと同じディレクトリにあると仮定していますが、ない場合は、パス変数を変更することができます。

+0

Thx。しかし、別のディレクトリを使用したい –

0

、:

.csファイルは、私は私のPythonコードを実行すると、私は結果を取得したい

class MyClass 
{  
    string str = "Hello world"; 
} 

の.pyファイル

fp = open(path, 'r').read() 
#str = ??? 
print 'str: ' + str 

を提出します理想的には、スマートなパーサーを使用したいと思うでしょうC#を知るには十分です。しかし、あなたは正規表現を使っていろいろなことをすることができ、この例のために動作させることができます。

import re 

fp = open(path, 'r').read() 
match = re.search(r'str = "(.*?)"', fp) 

print("Str: %s" % match.group(1)) 
+0

このコードはエラーを返します:AttributeError: 'NoneType'オブジェクトに 'group'属性がありません –

関連する問題