这是我的代码:
print str(float(1/3))+'%'
Run Code Online (Sandbox Code Playgroud)
它显示:
0.0%
Run Code Online (Sandbox Code Playgroud)
但我想得到 33%
我能做什么.
我想导入foo-bar.py.这有效:
foobar = __import__("foo-bar")
Run Code Online (Sandbox Code Playgroud)
这不是:
from "foo-bar" import *
Run Code Online (Sandbox Code Playgroud)
我的问题:有什么方法可以使用上面的格式,即from "foo-bar" import *导入一个包含其中的模块-?
我正在尝试创建类实例的JSON字符串表示并且有困难.假设这个类是这样构建的:
class testclass:
value1 = "a"
value2 = "b"
Run Code Online (Sandbox Code Playgroud)
对json.dumps的调用是这样的:
t = testclass()
json.dumps(t)
Run Code Online (Sandbox Code Playgroud)
它失败并且告诉我测试类不是JSON可序列化的.
TypeError: <__main__.testclass object at 0x000000000227A400> is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用pickle模块:
t = testclass()
print(pickle.dumps(t, pickle.HIGHEST_PROTOCOL))
Run Code Online (Sandbox Code Playgroud)
它提供类实例信息,但不提供类实例的序列化内容.
b'\x80\x03c__main__\ntestclass\nq\x00)\x81q\x01}q\x02b.'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我需要更换一些字符如下:&- > \&,#- > \#,...
我编码如下,但我想应该有更好的方法.任何提示?
strs = strs.replace('&', '\&')
strs = strs.replace('#', '\#')
...
Run Code Online (Sandbox Code Playgroud) 我的机器上安装了两个版本的Python(版本2.6和2.5).我想为一个项目运行2.6,为另一个项目运行2.5.
如何指定要使用的内容?
我正在使用Windows XP SP2.
在python中,我必须实例化某个类,知道它在字符串中的名称,但这个类"存在"一个动态导入的模块中.一个例子如下:
loader类脚本:
import sys
class loader:
def __init__(self, module_name, class_name): # both args are strings
try:
__import__(module_name)
modul = sys.modules[module_name]
instance = modul.class_name() # obviously this doesn't works, here is my main problem!
except ImportError:
# manage import error
Run Code Online (Sandbox Code Playgroud)
一些动态加载的模块脚本:
class myName:
# etc...
Run Code Online (Sandbox Code Playgroud)
我使用这种安排来使任何动态加载的模块在dyn-loaded-modules中遵循某些预定义的行为,由loader-class使用...
任何想法都表示赞赏.
是否有任何简短的方法来实现APT(高级软件包工具)命令行界面在Python中的作用?
我的意思是,当包管理器提示后面是/否问题时[Yes/no],脚本接受YES/Y/yes/y或Enter(默认Yes为大写字母暗示).
我在官方文档找到的唯一的事情就是input和raw_input...
我知道这并不难以模仿,但重写是很烦人的:|
我无法理解functools中的部分工作原理.我从这里得到以下代码:
>>> sum = lambda x, y : x + y
>>> sum(1, 2)
3
>>> incr = lambda y : sum(1, y)
>>> incr(2)
3
>>> def sum2(x, y):
return x + y
>>> incr2 = functools.partial(sum2, 1)
>>> incr2(4)
5
Run Code Online (Sandbox Code Playgroud)
现在就行了
incr = lambda y : sum(1, y)
Run Code Online (Sandbox Code Playgroud)
我得到的是,无论我传递给incr它的任何论点都将被传递y给lambda哪个将返回sum(1, y)ie 1 + y.
我明白那个.但我不明白这一点incr2(4).
如何在部分函数中4传递x?对我来说,4应该更换sum2.x和之间有什么关系 …
我正在尝试解析csv文件并仅从特定列中提取数据.
示例csv:
ID | Name | Address | City | State | Zip | Phone | OPEID | IPEDS |
10 | C... | 130 W.. | Mo.. | AL... | 3.. | 334.. | 01023 | 10063 |
Run Code Online (Sandbox Code Playgroud)
我想只捕获特定的列,也就是说ID,Name,Zip和Phone.
我看过的代码让我相信我可以通过相应的数字调用特定的列,因此即:Name将对应2并使用迭代遍历每一行将row[2]生成第2列中的所有项目.只有它不会.
这是我到目前为止所做的:
import sys, argparse, csv
from settings import *
# command arguments
parser = argparse.ArgumentParser(description='csv to postgres',\
fromfile_prefix_chars="@" )
parser.add_argument('file', help='csv file to import', action='store') …Run Code Online (Sandbox Code Playgroud)