小编Sil*_*ost的帖子

python 2.4中的路径分隔符char

出于好奇 - 有没有另一种方法来获取平台的路径分隔符char而不是os.path.normcase('/')Python 2.4?
我期待像一个os.path.separator常数......

python path-separator

15
推荐指数
1
解决办法
7316
查看次数

如何反编译正则表达式?

编译后有没有办法反编译正则表达式?

python regex

15
推荐指数
2
解决办法
2456
查看次数

动态创建类属性

我需要从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__用于类创建,以便从字典中动态创建这些属性并保存大量代码和愚蠢的工作.

你会怎么做?

非常感谢你提前!

python class-attributes

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

Python参考

有人可以解释为什么带有整数的示例会导致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)

python immutability

15
推荐指数
2
解决办法
6821
查看次数

Python - 如何打开文件并以字节为单位指定偏移量?

我正在编写一个程序,它会定期解析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 file-io byte offset

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

Linux上是python的shutil.move()原子吗?

我想知道python的shutil.move是否在linux上是原子的?如果源文件和目标文件位于两个不同的分区上,或者它们是否存在于同一分区上,那么行为是否不同?

如果源文件和目标文件在同一个分区上,我更关心的是知道shutil.move是否是原子的!

python unix file atomic

15
推荐指数
1
解决办法
3094
查看次数

尝试使用超过22个字符的字符串的正则表达式

我有一个非常长的数据,我需要快速通过它,并确保没有任何名称超过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'容器中.

regex

15
推荐指数
2
解决办法
3万
查看次数

为什么str.lstrip会删除一个额外的字符?

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 string

14
推荐指数
3
解决办法
9386
查看次数

"".join(reverse(val))vs val [:: - 1] ...这是pythonic?

所以根据PythonZen ... 显式优于隐式 ... 稀疏优于密集 ... 可读性计数 ......但是再次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

14
推荐指数
1
解决办法
900
查看次数

Python file.write创建额外的回车

我正在使用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.为什么?

python windows eol

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