请教关于ConfigParser的问题

jeky_zhang2013 2013-09-06 05:18:02
最近在学习python,在看ConfigParser的过程中发现一个问题。
我在一个python文件中修改.ini文件的配置, 结果是正常的。
当我一个文件中修改.ini配置文件,调用另外一个python文件中的方法来读.ini文件,读到的是之前没有修改的配置项,很奇怪。我尝试没修改一次就打开文件和关闭,现在读的是修改后的文件,但是配置文件变成空的了,请教高手指教,谢谢~~
关键代码如下:
config_file_path = os.path.join(os.path.dirname(os.path.abspath(__file__)),"db_config.ini")
print config_file_path
cf = ConfigParser.ConfigParser()
cf.read(config_file_path)
if self.taskName.GetValue()!="":
config_file = open(config_file_path, "w")
taskID= self.taskName.GetValue()
cf.set(base_conf, "taskid", taskID)
cf.write(config_file)
config_file.close()
if self.version.GetValue()!="":
config_file = open(config_file_path, "w")
version= self.version.GetValue()
cf.set(base_conf, "version", version)
cf.write(config_file)
config_file.close()
...全文
228 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeky_zhang2013 2013-09-09
  • 打赏
  • 举报
回复
问题已解决,谢谢大家的回复!
yueguanghaidao 2013-09-09
  • 打赏
  • 举报
回复
jeky_zhang2013 2013-09-09
  • 打赏
  • 举报
回复
我发现问题了,在导入另外一个python 文件的开始就开始解析文件了,导致文件读的是没有修改的
jeky_zhang2013 2013-09-07
  • 打赏
  • 举报
回复
引用 7 楼 angel_su 的回复:
描述不是很清楚,配置文件先用一个固定绝对路径,保证不同脚本都是对同一文件在操作...
描述没讲清楚,两个脚本在同一个包下,是操作同一个文件
angel_su 2013-09-07
  • 打赏
  • 举报
回复
描述不是很清楚,配置文件先用一个固定绝对路径,保证不同脚本都是对同一文件在操作...
panghuhu250 2013-09-07
  • 打赏
  • 举报
回复
先把所有的更改完成,再发送或存储。

for name, control in myControls.items(): # myControls记录着选项名及对应的控件
  if control.getValue() != "":
     cf.set(base_conf, name, control.getValue())
# save cf
with f = open(conf_file_path):
   ...
ImN1 2013-09-07
  • 打赏
  • 举报
回复
引用 3 楼 jeky198306 的回复:
[quote=引用 2 楼 snmr_com 的回复:] io是需要时间的,例如硬盘写入缓存等等,不应按此思路设计 即使close()也不是瞬时完成的
你好,谢谢的答复,我是修改完成后,再调用另外一个python进行读取,中间要等待多长时间? 我要做的是,wxpython界面启动,读取配置文件,将配置文件里面的值自动写到界面对应的TextCtr,CheckBox等控件中,每条记录的控件类型一样,然后在界面上修改配置,点击确认按钮,将这写信息发送出去,同时时将修改保存在原配置文件中。 请问有什么好的方法和建议?谢谢~~[/quote] 我建议是直接传值,修改ini只是作为下次运行的环境参数
jeky_zhang2013 2013-09-07
  • 打赏
  • 举报
回复
引用 1 楼 yueguanghaidao 的回复:
没看出来,是不是在程序还没结束你打开文件看的?
我试着将配置文件打开和关闭,最后都是文本没有了。改成上面的,文件中重复写了配置信息,在后面追加的,很奇怪。
jeky_zhang2013 2013-09-07
  • 打赏
  • 举报
回复
引用 2 楼 snmr_com 的回复:
io是需要时间的,例如硬盘写入缓存等等,不应按此思路设计 即使close()也不是瞬时完成的
你好,谢谢的答复,我是修改完成后,再调用另外一个python进行读取,中间要等待多长时间? 我要做的是,wxpython界面启动,读取配置文件,将配置文件里面的值自动写到界面对应的TextCtr,CheckBox等控件中,每条记录的控件类型一样,然后在界面上修改配置,点击确认按钮,将这写信息发送出去,同时时将修改保存在原配置文件中。 请问有什么好的方法和建议?谢谢~~
ImN1 2013-09-07
  • 打赏
  • 举报
回复
io是需要时间的,例如硬盘写入缓存等等,不应按此思路设计 即使close()也不是瞬时完成的
yueguanghaidao 2013-09-06
  • 打赏
  • 举报
回复
没看出来,是不是在程序还没结束你打开文件看的?

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧