在Python中,调用
temp = open(filename,'r').readlines()
Run Code Online (Sandbox Code Playgroud)
得到一个列表,其中每个元素都是文件中的一行.它有点愚蠢但仍然:readlines()还为每个元素写了换行符,这是我不希望发生的.我怎么能避免呢?
我对Python很陌生,现在我正在努力为打印输出很好地格式化我的数据.
我有一个用于两个标题的列表,以及一个应该是表格内容的矩阵.像这样:
teams_list = ["Man Utd", "Man City", "T Hotspur"]
data = np.array([[1, 2, 1],
[0, 1, 0],
[2, 4, 2]])
Run Code Online (Sandbox Code Playgroud)
请注意,标题名称的长度不一定相同.但是,数据条目都是整数.
现在,我想以表格格式表示这个,如下所示:
Man Utd Man City T Hotspur
Man Utd 1 0 0
Man City 1 1 0
T Hotspur 0 1 2
Run Code Online (Sandbox Code Playgroud)
我有预感,必须有一个数据结构,但我找不到它.我已经尝试使用字典和格式化打印,我已尝试使用缩进的for循环,我已尝试打印为字符串.
我确信必须有一个非常简单的方法来做到这一点,但由于缺乏经验,我可能会错过它.
我有一个日志文件由另一个进程编写,我想要观察更改.每次发生变化时,我都想读取新数据,对其进行一些处理.
最好的方法是什么?我希望PyWin32库中有一些钩子.我找到了这个win32file.FindNextChangeNotification功能,但不知道如何让它看到一个特定的文件.
如果有人做过这样的事情,我会非常感激听到......
[编辑]我应该提到我是在一个不需要轮询的解决方案之后.
[编辑]诅咒!这似乎不适用于映射的网络驱动器.我猜Windows不会像在本地磁盘上那样"听到"文件的任何更新.
我有两个现有的词典,我希望将其中一个词典"追加"到另一个词典中.我的意思是,其他字典的关键值应该被制作成第一个字典.例如:
orig = {
'A': 1,
'B': 2,
'C': 3,
}
extra = {
'D': 4,
'E': 5,
}
dest = # something here involving orig and extra
print dest
{
'A': 1,
'B': 2,
'C': 3,
'D': 4,
'E': 5
}
Run Code Online (Sandbox Code Playgroud)
我认为这一切都可以通过for循环实现(也许?),但是有一些字典方法或任何其他模块可以为我保存这份工作吗?我正在使用的实际词典真的很大......
假设我有一个类,其成员名为data,这是一个列表.
我希望能够使用例如文件名(包含初始化列表的数据)或实际列表来初始化类.
你这样做的技巧是什么?
你只是看看类型__class__吗?
我可能会缺少一些技巧吗?
我已经习惯了C++,其中按参数类型重载很容易.
每当我使用时sys.path.append,都会添加新目录.但是,一旦我关闭python,列表将恢复到之前的(默认?)值.如何永久添加目录PYTHONPATH?
在Python中,我可以使用以下命令编译正则表达式以区分大小写re.compile:
>>> s = 'TeSt'
>>> casesensitive = re.compile('test')
>>> ignorecase = re.compile('test', re.IGNORECASE)
>>>
>>> print casesensitive.match(s)
None
>>> print ignorecase.match(s)
<_sre.SRE_Match object at 0x02F0B608>
Run Code Online (Sandbox Code Playgroud)
有没有办法做同样的事情,但没有使用re.compile.我在文档中找不到类似Perl的i后缀(例如m/test/i).
现在很清楚元类是什么,有一个相关的概念,我一直在使用,而不知道它的真正含义.
我想每个人都用括号做错了,导致"对象不可调用"异常.更重要的是,使用__init__并__new__导致想知道这种血腥__call__可以用于什么.
你能给我一些解释,包括魔术方法的例子吗?
如何将本地时间的日期时间字符串转换为UTC时间的字符串?
我确定我以前做过这个,但找不到它,所以希望能帮助我(以及其他人)在将来做到这一点.
澄清:例如,如果我2008-09-17 14:02:00在我的本地时区(+10)中,我想生成一个具有相同UTC时间的字符串:2008-09-17 04:02:00.
此外,请访问http://lucumr.pocoo.org/2011/7/15/eppur-si-muove/,请注意,一般情况下这不可能与DST和其他问题一样,因此从当地时间到UTC时间.
我得到的答案是其余的Epoch时间格式
start_time = 1234566
end_time = 1234578
Run Code Online (Sandbox Code Playgroud)
我想在MySQL格式时转换那个纪元秒,这样我就可以在MySQL数据库中存储差异.
我试过了:
>>> import time
>>> time.gmtime(123456)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=2, tm_hour=10, tm_min=17, tm_sec=36, tm_wday=4, tm_yday=2, tm_isdst=0)
Run Code Online (Sandbox Code Playgroud)
以上结果不是我所期待的.我希望它像
2012-09-12 21:00:00
Run Code Online (Sandbox Code Playgroud)
请建议我如何实现这一目标?
另外,为什么我收到TypeError: a float is required了
>>> getbbb_class.end_time = 1347516459425
>>> mend = time.gmtime(getbbb_class.end_time).tm_hour
Traceback (most recent call last):
...
TypeError: a float is required
Run Code Online (Sandbox Code Playgroud) python ×10
callable ×1
constructor ×1
datetime ×1
dictionary ×1
file ×1
line-breaks ×1
localtime ×1
pythonpath ×1
pywin32 ×1
readlines ×1
regex ×1
save ×1
sys ×1
utc ×1
watch ×1
windows ×1