问题导入ConfigParser读取文件

时间:2014-10-28 20:08:55

标签: python linux

简介
我有一个存储特定凭据的.ini文件( A )。有多个脚本( B ) - python,php等 - 它将这个.ini文件( A )解析为变量,并且与...相同。 ini文件( A )。其他目录( C )位于.ini文件( A )和解析脚本( B )的另一个目录(不是子目录)下NOT驻留导入/包含这些解析脚本( B )以利用已解析的凭据变量。

但是,当我尝试使用“sudo python< _( C 运行python脚本( C )时,我收到此错误”ConfigParser.NoSectionError“ EM>)_> py“为
。 运行“sudo python” / interactive python,并在.ini文件的目录中导入python解析脚本( B )( A )和( B ),我能够访问已解析的凭证变量。

问题
我究竟做错了什么?我认为这是一个许可问题

文件夹树
FOLDER_0
- > Sub_Folder_0
- >( A 的)
- >(
- > Sub_Folder_1
- >( C

A 的)

  [Host]
  ip = 111.111.1.222
  [Schema]
  name = Derp_A_Der
  [User]
  name = root
  password = SexysBack


B

   import ConfigParser as CP;
   config = CP.ConfigParser();
   config.read("B.ini");

   m_p = config.get("User", "password");
   m_h = config.get("Host", "ip");
   m_n = config.get("Schema", "name");
   m_u = config.get("User", "name");


C

   import sys;
   import os;

   mysql_config_path = "/Folder_0/Sub_Folder_0/";
   sys.path.append( os.path.abspath(mysql_config_path) );
   import mysqlConfig as myC;

   print myC.m_u;

2 个答案:

答案 0 :(得分:0)

当找不到配置文件时,将使用空数据集,因此会出现异常 NoSectionError 在使用

运行脚本之前,您应该将目录更改为配置文件所在的位置
os.chdir(mysql_config_path) 

或使用目标脚本中的完整路径(在config.read()中)

答案 1 :(得分:0)

感谢 pmod ,我意识到自己犯了一个愚蠢的错误。我还在_Sub_Folder_1 _。

解决方案1 ​​
将( C )更改为...

import sys;
import os;

mysql_config_path = "/Folder_0/Sub_Folder_0/";
os.chdir(mysql_config_path);
sys.path.append( os.path.abspath(mysql_config_path) );
import mysqlConfig as myC;

print myC.m_u;



解决方案2
将( B )更改为...

import ConfigParser as CP;
config = CP.ConfigParser();
config.read("/Folder_0/Sub_Folder_0/B.ini");

m_p = config.get("User", "password");
m_h = config.get("Host", "ip");
m_n = config.get("Schema", "name");
m_u = config.get("User", "name");