如何在Python中找到线程ID

我有一个多线程Python程序和一个实用程序函数, writeLog(message),该写出时间戳记和消息。不幸的是,结果日志文件没有给出哪个线程正在生成哪个消息的指示。 我希望writeLog()能够在消息中添加一些内容,以标识哪个线程正在调用它。显然,我可以使线程将这些信息传递进来,但这将需要更多工作。是否有一些os.getpid()我可以使用的等效线程?

Python 3.x舍入行为

我只是在重新阅读Python 3.0的新增功能,它指出: round()函数的舍入策略和返回类型已更改。现在,精确的中途案例将舍入到最接近的偶数结果,而不是从零舍入。(例如,round(2.5)现在返回2而不是3。) 以及关于round的文档: 对于支持round()的内置类型,将值四舍五入为乘幂n的最接近10的倍数;如果两个倍数相等接近,则四舍五入取整为偶数选择 因此,在v2.7.3下: In [85]: round(2.5) Out[85]: 3.0 In [86]: round(3.5) Out[86]: 4.0 如我所料 但是,现在在v3.2.3下: In [32]: round(2.5) Out[32]: 2 In [33]: round(3.5) Out[33]: 4 这似乎是违反直觉的,与我对四舍五入(并可能绊倒人)的理解相反。英语不是我的母语,但是直到我读了这篇文章,我才认为我知道四舍五入的含义:-/我确定在引入v3时一定对此进行了一些讨论,但我找不到很好的理由。我的搜索。 有人知道为什么将其更改为此吗? 是否有其他主流编程语言(例如C,C ++,Java,Perl等)进行这种(对我来说是不一致的)舍入? 我在这里想念什么? 更新:@ Li-aungYip的评论有关“银行取整”为我提供了正确的搜索词/关键字进行搜索,我发现了这样一个问题:为什么.NET默认使用银行取整?,所以我会仔细阅读。

如何在Python的同一行上打印变量和字符串?

我正在使用python算出如果一个孩子每7秒出生一次,那么5年内将有多少个孩子出生。问题出在我的最后一行。当我在文本的任何一侧打印文本时,如何使它工作? 这是我的代码: currentPop = 312032486 oneYear = 365 hours = 24 minutes = 60 seconds = 60 # seconds in a single day secondsInDay = hours * minutes * seconds # seconds in a year secondsInYear = secondsInDay * oneYear fiveYears = secondsInYear * 5 #Seconds in 5 years print …

使用python的eval()与ast.literal_eval()?

我遇到了一些代码,eval()将其作为一种可能的解决方案。现在,我以前从未使用eval()过,但是,我遇到了很多有关它可能引起的潜在危险的信息。也就是说,我对使用它非常谨慎。 我的情况是我有一个用户输入: datamap = raw_input(‘Provide some data here: ‘) 哪里datamap需要一本字典。我四处搜寻,发现eval()可以解决这个问题。我认为我可以在尝试使用数据之前检查输入的类型,这将是可行的安全预防措施。 datamap = eval(raw_input(‘Provide some data here: ‘) if not isinstance(datamap, dict): return 我通读了文档,但仍不清楚这是否安全。eval是否在输入数据后或datamap调用变量后立即评估数据? 该ast模块是.literal_eval()唯一安全的选择吗?

如何使用Python将文本文件读取到列表或数组中

我正在尝试将文本文件的行读入python中的列表或数组中。创建后,我只需要能够单独访问列表或数组中的任何项目。 文本文件的格式如下: 0,0,200,0,53,1,0,255,…,0. 凡…以上,有实际的文本文件中有数百或数千多个项目。 我正在使用以下代码尝试将文件读入列表: text_file = open(“filename.dat”, “r”) lines = text_file.readlines() print lines print len(lines) text_file.close() 我得到的输出是: [‘0,0,200,0,53,1,0,255,…,0.’] 1 显然,它将整个文件读入一个项目列表,而不是单个项目列表。我究竟做错了什么?

如何在Python中打破这条漫长的路线?

您将如何格式化这样的长行?我希望宽度不超过80个字符: logger.info(“Skipping {0} because its thumbnail was already in our system as {1}.”.format(line[indexes[‘url’]], video.title)) 这是我最好的选择吗? url = “Skipping {0} because its thumbnail was already in our system as {1}.” logger.info(url.format(line[indexes[‘url’]], video.title))

使用Python在SQLite中插入行后如何检索插入的ID?

使用Python在SQLite中插入行后如何检索插入的ID?我有这样的表: id INT AUTOINCREMENT PRIMARY KEY, username VARCHAR(50), password VARCHAR(50) 我用示例数据username=”test”和插入新行password=”test”。如何以交易安全的方式检索生成的ID?这是针对网站解决方案的,其中两个人可能同时插入数据。我知道我可以读到最后一行,但是我认为这不是事务安全的。有人可以给我一些建议吗?