出于好奇 - 有没有另一种方法来获取平台的路径分隔符char而不是os.path.normcase('/')Python 2.4?
我期待像一个os.path.separator常数......
我需要从DEFAULTS字典动态创建类属性.
defaults = {
'default_value1':True,
'default_value2':True,
'default_value3':True,
}
class Settings(object):
default_value1 = some_complex_init_function(defaults[default_value1], ...)
default_value2 = some_complex_init_function(defaults[default_value2], ...)
default_value3 = some_complex_init_function(defaults[default_value3], ...)
Run Code Online (Sandbox Code Playgroud)
我也可以通过某事来实现这个目标.喜欢__init__用于类创建,以便从字典中动态创建这些属性并保存大量代码和愚蠢的工作.
你会怎么做?
非常感谢你提前!
有人可以解释为什么带有整数的示例会导致x和y的值不同,而列表中的示例会导致x和y成为同一个对象吗?
x = 42
y = x
x = x + 1
print x # 43
print y # 42
x = [ 1, 2, 3 ]
y = x
x[0] = 4
print x # [4, 2, 3]
print y # [4, 2, 3]
x is y # True
Run Code Online (Sandbox Code Playgroud) 我正在编写一个程序,它会定期解析Apache日志文件以记录它的访问者,带宽使用情况等.
问题是,我不想打开日志并解析我已经解析过的数据.例如:
line1
line2
line3
Run Code Online (Sandbox Code Playgroud)
如果我解析该文件,我将保存所有行,然后保存该偏移量.这样,当我再次解析它时,我得到:
line1
line2
line3 - The log will open from this point
line4
line5
Run Code Online (Sandbox Code Playgroud)
第二轮,我会得到第4行和第5行.希望这是有道理的......
我需要知道的是,我该如何做到这一点?Python有seek()函数来指定偏移量...所以我只是在解析之后得到日志的文件大小(以字节为单位)然后在第二次记录它时使用它作为偏移量(在seek()中)?
我似乎无法想到一种编码方式>.<
我想知道python的shutil.move是否在linux上是原子的?如果源文件和目标文件位于两个不同的分区上,或者它们是否存在于同一分区上,那么行为是否不同?
如果源文件和目标文件在同一个分区上,我更关心的是知道shutil.move是否是原子的!
我有一个非常长的数据,我需要快速通过它,并确保没有任何名称超过22个字符.我明白我可以在显示器端截断它,但我宁愿用一个合适的解决方案解决它,只需删除它们:)
这是我的样本
$profiles[257] = array('name'=>'FedupKissingFrogs', 'age'=>27, 'sex'=>'F', 'location'=>'XXXXXXXXXX');
$profiles[260] = array('name'=>'Lil_Greta_90', 'age'=>20, 'sex'=>'F', 'location'=>'XXXXXXXXXX');
$profiles[262] = array('name'=>'lOOkfOrme86', 'age'=>24, 'sex'=>'F', 'location'=>'XXXXXXXXXX');
$profiles[259] = array('name'=>'youvefoundME', 'age'=>21, 'sex'=>'F', 'location'=>'XXXXXXXXXX');
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止提出的正则表达式,它似乎根本不起作用
'[A-Za-z]{20,40}'
Run Code Online (Sandbox Code Playgroud)
我的计划是我可以使用正则表达式标记行,然后我可以从我的IDE中删除它们.没有编程允许;)
- 编辑 -
感谢所有的答复!这背后的想法是一种快速,自动的方式来只扫描一个包含数组的平面PHP文件,看看是否所有短于22个字符的名称,作为一个比这更长的名称将打破布局,我被要求删除它们.我想在我的IDE中搜索并删除这些行.
匹配字符并不重要,任何字符都是允许的,甚至是空格,\ /〜和*等.我看起来更匹配字符串的长度但包含在=>'$name'容器中.
Python 2.6 (trunk:66714:66715M, Oct 1 2008, 18:36:04)
[GCC 4.0.1 (Apple Computer, Inc. build 5370)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> path = "/Volumes/Users"
>>> path.lstrip('/Volume')
's/Users'
>>> path.lstrip('/Volumes')
'Users'
>>>
Run Code Online (Sandbox Code Playgroud)
我期待输出path.lstrip('/Volumes')应该是/Users
所以根据Python的Zen ... 显式优于隐式 ... 稀疏优于密集 ... 可读性计数 ......但是再次Flat优于嵌套 ...那么哪个是pythonic?
val = "which is pythonic?"
print("".join(reversed(val)))
Run Code Online (Sandbox Code Playgroud)
要么
print(val[::-1])
Run Code Online (Sandbox Code Playgroud)
我只是一个学习Python的Java程序员,所以我发现这个pythonic的东西很有趣,因为Java世界AFAIK中没有模拟.
我正在使用python将一系列SQL语句写入文件.模板字符串如下所示:
store_insert = '\tinsert stores (storenum, ...) values (\'%s\', ...)'
Run Code Online (Sandbox Code Playgroud)
我正在写这样的文件:
for line in source:
line = line.rstrip()
fields = line.split('\t')
script.write(store_insert % tuple(fields))
script.write(os.linesep)
Run Code Online (Sandbox Code Playgroud)
但是,在结果输出中,我看到\ r \n\r \n在每一行的末尾,而不是我期望的\ r \n.为什么?