2017-06-22 9 views
1

多くの人が共有するpythonスクリプトでは、ユーザードライバを検出するソリューションが必要なので、接続文字列を動的に構築できます。私は現在のようなOS環境のCOMPUTERNAMEを使用しています:Pythonとpypyodbcを使用しているWindowsの場合どのように利用可能なドライバをリストしていますか?

if os.environ['COMPUTERNAME'] == 'MattsDesktop': 
print("You are using: Oracle 12") 
    self.DataConnectOracle = 'DRIVER={Oracle in 12cR1client32bit};SERVER=Xyz;DBQ=DEVenv;UID=AllDev;PWD=Secret2Secret' 

しかし、これは、ユーザが変更を行うたびに更新する必要があります。私は彼らのドライバーの情報を得ることができなければならないようであり、これらのものを維持する必要はないと思われる。

答えて

1

それはあなたのドライバの正確なバージョンを与えるものではありませんが、pypyodbc.drivers()はあなたのWindows上でそれに利用可能なドライバの名前を与えます。これは、接続文字列を作成するためにドライバ名(バージョンではない)だけが必要なので十分です。例えば

は、私のマシンだけでOracleドライバのリストについては

import pypyodbc 
drivers_list = sorted(pypyodbc.drivers()) 
for driver_name in drivers_list: 
    print(driver_name) 

プリント

Driver da Microsoft para arquivos texto (*.txt; *.csv) 
Driver do Microsoft Access (*.mdb) 
Driver do Microsoft Excel(*.xls) 
Driver do Microsoft Paradox (*.db) 
Driver do Microsoft dBase (*.dbf) 
Driver para o Microsoft Visual FoxPro 
Microsoft Access Driver (*.mdb) 
Microsoft Access Driver (*.mdb, *.accdb) 
Microsoft Access Text Driver (*.txt, *.csv) 
Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx) 
Microsoft Access-Treiber (*.mdb) 
Microsoft Excel Driver (*.xls) 
Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb) 
Microsoft Excel-Treiber (*.xls) 
Microsoft FoxPro VFP Driver (*.dbf) 
Microsoft ODBC for Oracle 
Microsoft Paradox Driver (*.db) 
Microsoft Paradox-Treiber (*.db) 
Microsoft Text Driver (*.txt; *.csv) 
Microsoft Text-Treiber (*.txt; *.csv) 
Microsoft Visual FoxPro Driver 
Microsoft Visual FoxPro-Treiber 
Microsoft dBase Driver (*.dbf) 
Microsoft dBase VFP Driver (*.dbf) 
Microsoft dBase-Treiber (*.dbf) 
MySQL ODBC 5.3 ANSI Driver 
MySQL ODBC 5.3 Unicode Driver 
ODBC Driver 11 for SQL Server 
SQL Server 
SQL Server Native Client 11.0 
SQLite3 ODBC Driver 

に、私は

oracle_list = [x for x in pypyodbc.drivers() if "Oracle" in x] 
+0

パーフェクションを使用することができます!特に小さなコード行:sqlserver_list = [xの[SQL Serverネイティブクライアント]があなたのものと同じ場合は、pypyodbc.drivers()のxのxです!感謝!!! –

関連する問題