相关疑难解决方法(0)

将代码复制并粘贴到Python解释器中

我想将一段代码复制并粘贴到我的Python解释器中.不幸的是,由于Python对空白的敏感性,以一种有意义的方式复制和粘贴它并不简单.(我认为空白被破坏了)有更好的方法吗?也许我可以从文件中加载片段.

这只是一个小例子,但是如果有很多代码我想避免从函数的定义或复制和逐行粘贴中输入所有内容.

class bcolors: 
    HEADER = '\033[95m' 
    OKBLUE = '\033[94m' 
    OKGREEN = '\033[92m' 
    WARNING = '\033[93m' 
    FAIL = '\033[91m' 
    ENDC = '\033[0m' 

    def disable(self):  
        self.HEADER = '' # I think stuff gets mangled because of the extra level of indentation 
        self.OKBLUE = '' 
        self.OKGREEN = '' 
        self.WARNING = '' 
        self.FAIL = '' 
        self.ENDC = ''
Run Code Online (Sandbox Code Playgroud)

python

34
推荐指数
6
解决办法
7万
查看次数

如何模块化django settings.py?

安装新的django应用程序时,必须添加/修改settings.py模块.

对于一个项目,我试图使该模块成为python子包并为每个应用程序创建一个模块:

settings\
    __init__.py
    base.py
    admin.py
    feincms.py
    ...
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是如何合并settings.py属性(例如INSTALLED_APPS是值的元组),它们在不同的子模块中获取值?

谢谢


好吧,我问错了问题(尽管得到了正确答案).我的问题应该是,如何从所有子模块获取属性并合并它们?Django将导入设置并期望一切都在那里.

python django

23
推荐指数
3
解决办法
1万
查看次数

什么时候在python中收集垃圾?

什么时候在python中收集垃圾?什么时候发布内存并且收集会影响性能?可以选择退出或调整gc算法,如果是,如何?

python garbage-collection memory-management

16
推荐指数
2
解决办法
9121
查看次数

如何将文件"源"到python脚本中

我有一个/etc/default/foo包含一行的文本文件:

FOO="/path/to/foo"
Run Code Online (Sandbox Code Playgroud)

在我的python脚本中,我需要引用变量FOO.

将文件"源" /etc/default/foo到我的python脚本中的最简单方法是什么,就像我在bash中一样?

. /etc/default/foo
Run Code Online (Sandbox Code Playgroud)

python bash python-2.7

13
推荐指数
5
解决办法
3万
查看次数

相当于Python中R的source()

就像我们在R studio 中的另一个程序中source()执行R程序的功能一样R,如何在另一个python程序中执行python程序?

python execute

11
推荐指数
1
解决办法
3779
查看次数

在python中读取一个unicode文件,它以与python源相同的方式声明其编码

我想写一个python程序,它读取包含unicode文本的文件.这些文件通常用UTF-8编码,但可能不是; 如果不是,则将在文件的开头显式声明备用编码.更确切地说,它将使用与Python本身使用的完全相同的规则来声明,以允许Python源代码具有显式声明的编码(如在PEP 0263中,请参阅https://www.python.org/dev/peps/pep- 0263 /更多细节).为了清楚起见,正在处理的文件实际上并不是python源,但它们确实使用相同的规则声明了它们的编码(当不是UTF-8时).

如果在打开文件之前知道文件的编码,Python提供了一种非常简单的方法来自动解码文件:codecs.open命令; 例如,有人可能会:

import codecs
f = codecs.open('unicode.rst', encoding='utf-8')
for line in f:
    print repr(line)
Run Code Online (Sandbox Code Playgroud)

line我们进入循环的每一个都是一个unicode字符串.是否有一个Python库做类似的事情,但根据上面的规则选择编码(我认为这是Python 3.0的规则)?(例如,Python是否公开了'使用自我声明编码的'读取文件'来读取语言的来源?)如果没有,那么实现所需效果的最简单方法是什么?

一种想法是使用通常打开文件open,读取前两行,将它们解释为UTF-8,使用PEP中的regexp查找编码声明,如果找到一个使用声明的编码开始解码所有后续行.为了确保这一点,我们需要知道,对于Python在Python源代码中允许的所有编码,通常的Python readline会正确地将文件拆分成行 - 也就是说,我们需要知道Python允许的所有编码Python源代码,字节串'\n'总是真正意味着换行符,并不是编码另一个字符的多字节序列的一部分.(事实上​​我也需要担心'\ r \n'.)有人知道这是否属实?文档不是很具体.

另一个想法是查看Python源代码.有谁知道在Python源代码中源代码编码处理的位置是什么?

python unicode

9
推荐指数
1
解决办法
4808
查看次数

如何从python代码激活/停用virtualenv?

对于激活,有一个脚本可以激活已经运行的python interpeter使用的virtualenv execfile('C:/path/to/virtualev/Scripts/activate_this.py', dict(__file__='C:/path/to/virtualev/Scripts/activate_this.py')).但是,因为我仍然可以从当前的python脚本导入不在virtualenv中的包,所以我很困惑它是如何工作的.
对于停用,根本没有python脚本.
我该怎么办?

python virtualenv

9
推荐指数
1
解决办法
4748
查看次数

python如何实现相互递归?

转到使用C/Java背景的python,我最近不得不实现相互递归,但python中的某些东西困扰着我:

因为python程序是逐行解释的,如果我在同一个python文件中一个接一个地有两个函数:

def A(n):
    B(n-1)
# if I add A(1) here, it gives me an error
def B(n):
    if n <= 0:
        return
    else:
        A(n-1)
Run Code Online (Sandbox Code Playgroud)

当解释器正在读取时A,B尚未定义,但是此代码不会给我一个错误

TL; DR 我的理解是,当def被解释,蟒蛇增加了一些本地的名称空间中的条目locals(){"function name": function address},但作为函数体,它只能做语法检查:

def A():
    blabla # this will give an error

def B():
    print x # even though x is not defined, this does not give an error
    A()     # same as above, NameError is only detected during runtime
Run Code Online (Sandbox Code Playgroud)

python interpreted-language function mutual-recursion

9
推荐指数
2
解决办法
1656
查看次数

如何从python提示符执行(不导入)python脚本?

我需要从已经启动的Python会话中执行Python脚本,就像它是从命令行启动一样.我在考虑类似于source在bash或sh中做.

python bash import module

6
推荐指数
1
解决办法
6606
查看次数

在Windows 7 64位上从IDLE运行Python脚本

我试图弄清楚如何在Windows 7上成功使用Python 2.7.1.
到目前为止,我不得不使用shell(IDLE)来创建脚本,然后从cmd提示符运行它们.我觉得这会减慢学习过程,我想知道是否有办法从IDLE运行它(我无法创建路径,所以每当我尝试打开或导入文件时我都会收到错误)或还是其他一些程序/文本编辑器?

任何帮助,将不胜感激!我可能只是做错了什么.

python python-idle

6
推荐指数
2
解决办法
8万
查看次数