python总是创建一个文件名“ c”,为什么? (使用cs = imp.load_source(‘cs’,”,f)函数)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python总是创建一个文件名“ c”,为什么? (使用cs = imp.load_source(‘cs’,”,f)函数),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1287字,纯文字阅读大概需要2分钟。
内容图文
![python总是创建一个文件名“ c”,为什么? (使用cs = imp.load_source(‘cs’,”,f)函数)](/upload/InfoBanner/zyjiaocheng/658/eb69df9ce6b14ad8988049e6749ee675.jpg)
我想为我的python代码使用一个带有configure变量的txt文件,然后我将以下代码从Web复制到了我的python中.
def getVarFromFile(filename):
import imp
f = open(filename)
global cs
cs = imp.load_source('cs', '', f)
f.close()
奇怪的是,每当我运行python代码时,我就会在目录中找到一个名为“ c”的文件,并且其中存储着许多奇怪的字符,例如:
ò
;€-Rc
为什么会出现这个“ c”文件?我该如何摆脱呢?谢谢
—-添加信息—–
我打了电话
getVarFromFile('config/cs.txt')
我的cs.txt看起来像:
var1 = 'abc'
var2 = 'h'
var3 = '2'
var4 = '1'
我使用如下数据:
var2 = int(cs.var2)
通过调试,一旦我把
sys.exit()
之前
cs = imp.load_source('cs', '', f)
没有生成这样的c文件.当我在该行之后放置exit时,将生成一个名为“ c”的文件.
因此它必须与该功能有关
解决方法:
您需要为pathname参数提供一个更合理的值.
imp.load_source(name,pathname,file)用于加载源文件.作为其一部分,它将把源文件编译为字节码,并将编译后的代码写到.pyc文件中.我认为.pyc文件的名称是通过将c放在您提供的路径名的末尾来获得的.
如果您不希望编译缓存,则只需读取文件并创建自己的模块即可.查看Load module from string in python的方法:
import sys,imp
my_code = 'a = 5'
mymodule = imp.new_module('mymodule')
exec my_code in mymodule.__dict__
与您的原始代码结合起来将是(未测试):
def getVarFromFile(filename):
import imp
with open(filename) as f:
global cs
cs = imp.new_module('cs')
exec(f.read(), cs.__dict__)
内容总结
以上是互联网集市为您收集整理的python总是创建一个文件名“ c”,为什么? (使用cs = imp.load_source(‘cs’,”,f)函数)全部内容,希望文章能够帮你解决python总是创建一个文件名“ c”,为什么? (使用cs = imp.load_source(‘cs’,”,f)函数)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。