小编Dav*_*nes的帖子

从字符串中删除最终字符(Python)

假设我的字符串长10个字符.

如何删除最后一个字符?

如果我的字符串是"abcdefghij"(我不想替换"j"字符.因为我的字符串可能包含多个"j"字符)我只希望最后一个字符消失.无论它是什么或发生了多少次,我都需要删除字符串中的最后一个字符.

python string

445
推荐指数
4
解决办法
70万
查看次数

python文件扩展名是什么,.pyc .pyd .pyo代表什么?

这些python文件扩展名是什么意思?

  • .pyc文件
  • .pyd
  • .pyo

它们之间有什么区别?它们是如何从*.py文件生成的?

python pyc

419
推荐指数
2
解决办法
27万
查看次数

仅显示终端中的当前路径

我已经通过SSH连接到计算机,所以我无法使用GUI来访问路径名.有没有办法可以直接在终端上看到路径,而无需使用Nautilus?

unix terminal path

247
推荐指数
1
解决办法
43万
查看次数

指定popen的工作目录

有没有办法在Python中指定命令的运行目录subprocess.Popen()

例如:

Popen('c:\mytool\tool.exe', workingdir='d:\test\local')
Run Code Online (Sandbox Code Playgroud)

我的Python脚本位于 C:\programs\python

是否可以C:\mytool\tool.exe在目录中运行D:\test\local

如何设置子流程的工作目录?

python subprocess popen

174
推荐指数
2
解决办法
14万
查看次数

不使用abs函数或if语句获取绝对值

我在想如何在不使用if语句的情况下获取整数的绝对值abs().起初我使用左移位(<<),试图将负号移出范围,然后将位移回原位,但不幸的是它对我不起作用.请让我知道它为什么不起作用以及其他替代方法.

c bit-manipulation

53
推荐指数
5
解决办法
8万
查看次数

Python JSON编码器支持datetime?

是否有任何优雅的方式使Python JSON编码器支持日期时间?一些第三方模块或简单的黑客?

我正在使用龙卷风的数据库包装器从db中获取一些原始数据以生成json.查询结果包括常规MySQL时间戳列.

Python的默认json编码器不支持自己的日期时间类型,这是非常烦人的,这在所有类型的数据库查询中都很常见.

我不想修改Python自己的json编码器.任何好的做法?非常感谢!

ps:我通过修改Python JSON编码器默认方法找到了一个脏黑客:

更改:

def default(self, o):
    raise TypeError(repr(o) + " is not JSON serializable")
Run Code Online (Sandbox Code Playgroud)

至:

def default(self, o):
    from datetime import date
    from datetime import datetime
    if isinstance(o, datetime):
        return o.isoformat()
    elif isinstance(o, date):
        return o.isoformat()
    else:
        raise TypeError(repr(o) + " is not JSON serializable")
Run Code Online (Sandbox Code Playgroud)

好吧,它只是开发环境的临时解决方案.

但是对于长期解决方案或生产环境,这非常难看,每次部署到新服务器时我都必须进行修改.

有没有更好的办法?我不想修改Python代码本身,也不想修改Tornado源代码.我能用自己的项目代码做些什么来实现这一目标吗?最好是一步到位.

非常感谢!

python mysql json tornado ios5

22
推荐指数
4
解决办法
2万
查看次数

strtok功能线程安全

我花了一些时间来调试一个给出分段错误的程序.这个bug是非常不确定和间歇性的,这很烦人.我把它缩小到strtok的召唤.我怀疑strtok的调用是在两个不同的线程中分割字符串导致分段错误.我可以在两个不同的线程中调用strtok吗?

谢谢.

c linux thread-safety strtok

19
推荐指数
2
解决办法
1万
查看次数

钻头检查数字是否在特定范围内

我在"source\common\unicode\utf.h"ICU库(International Components for Unicode)的文件中发现了一个有趣的小问题.钻头用于检查数字是否在特定范围内.

// Is a code point in a range of U+d800..U+dbff?
#define U_IS_LEAD(c) (((c)&0xfffffc00)==0xd800)
Run Code Online (Sandbox Code Playgroud)

我已经想出了幻数(0xfffffc00)来自:

MagicNumber = 0xffffffff - (HighBound - LowBound)
Run Code Online (Sandbox Code Playgroud)

但是,我还发现该公式不适用于每个任意范围.这里有人知道公式在什么情况下有效吗?

还有另外一点是为了检查一个数字是否在特定范围内吗?

c c++ algorithm bit-manipulation

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

在Lua中创建大型数组的最佳方法

我想使用Lua将大型二进制文件(大小为1mb)读入内存.目标设备是移动的,所以我非常希望最小化内存占用.

从网上快速看看,似乎Lua tabels将为每个连续整数索引(键)使用16B加上存储该值的空间,因为我存储二进制数据希望只使用2位但只能说1个字节.

1e6记录将是1e6*17 = ~17mB - 这是巨大的!

从我的简短阅读看来,我似乎可以userdata用来实现我想要的任何东西.我之前没有使用过C但看起来它会用到

1b*1e6 = 125kB

我应该这样做,还是我有一些非常错误/有更简单的方法来做到这一点.

任何建议甚至是蹩脚计算的名字都非常欢迎:)

编辑:下面有一些有趣的答案关于将数据存储在字符串中(谢谢!)和使用按位操作.我刚刚在PIL书(第3版pg293)中找到了一个例子,它比较了C中存储的布尔数组,因此他们使用了3%的内存.虽然这很酷且有用,但对我来说可能有点过分,因为下面的解决方案表明我可以装入1MB,这对我来说很好.

编辑:遇到这个C blob impl

编辑:解决方案 - 我按照建议将文件内容读入字符串,因为我使用5.1必须使用第三方位操作 - 我使用纯Lua实现LuaBit.感谢大家!!

c lua bit

10
推荐指数
1
解决办法
1794
查看次数

如何在python上将元组类型转换为int?

我是pyhton初学者.我想将sqlcommand结果(元组类型)转换为int类型.我怎样才能做到这一点?

import MySQLdb

db = MySQLdb.connect("localhost","root","password","database")
cursor = db.cursor()
cursor.execute("SELECT timestamp FROM unixdb")
u_data = cursor.fetchall()

>>> print u_data
((1424794931452.0,),)
Run Code Online (Sandbox Code Playgroud)

u_data类型是元组,我想得到u_data的int类型.

python int tuples type-conversion

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