小编pki*_*kit的帖子

在Python中搜索并替换文件中的一行

我想循环遍历文本文件的内容,并在某些行上进行搜索和替换,并将结果写回文件.我可以先将整个文件加载到内存中然后再写回来,但这可能不是最好的方法.

在以下代码中,最好的方法是什么?

f = open(file)
for line in f:
    if line.contains('foo'):
        newline = line.replace('foo', 'bar')
        # how to write this newline back to the file
Run Code Online (Sandbox Code Playgroud)

python file

271
推荐指数
11
解决办法
42万
查看次数

使用寄存器值作为搜索模式

我希望在Vim中使用寄存器的内容作为搜索模式.

我想从命令行执行此操作,因此我无法使用<c-r>语法,因为它假设了一个交互式会话.

可以使用寄存器作为替换模式,如下所示

:%s/foo/\=@a/g
Run Code Online (Sandbox Code Playgroud)

但是,将此语法用作搜索模式不起作用

:%s/\=@a/foo/g 
Run Code Online (Sandbox Code Playgroud)

它输出

E64: \= follows nothing
E476: Invalid command
Run Code Online (Sandbox Code Playgroud)

vim

23
推荐指数
3
解决办法
3730
查看次数

使用许可证文件保护DLL文件

使用许可证文件保护DLL的使用/加载的最佳方法是什么?

c++ dll licensing

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

Lauch默认编辑器(如'webbrowser'模块)

有没有一种简单的方法可以从Python命令行工具中获取系统默认编辑器,比如webbrowser模块?

python command-line editor

13
推荐指数
1
解决办法
7778
查看次数

确定可执行文件(或库)是32位还是64位(在Windows上)

我试图找出一个给定的可执行文件(或库)是否从Python编译为32位或64位.我运行Vista 64位,并想确定目录中的某个应用程序是否编译为32位或64位.

有没有一种简单的方法只使用标准的Python库(目前使用2.5.4)?

python windows dll 64-bit executable

9
推荐指数
2
解决办法
6760
查看次数

在stdout上显示dir或echo等命令的EXECUTE_PROCESS输出

我希望EXECUTE_PROCESS在程序运行时直接看到命令在stdout上启动的命令输出.

我有以下测试CMakeLists.txt文件

PROJECT(TEST)
cmake_minimum_required(VERSION 2.8)

EXECUTE_PROCESS(COMMAND dir)
Run Code Online (Sandbox Code Playgroud)

从命令行运行时,它会产生这个

D:\tmp\testCMake\_build>"c:\Program Files (x86)\CMake 2.8\bin\cmake.exe" .
-- Configuring done
-- Generating done
-- Build files have been written to: D:/tmp/testCMake/_build
Run Code Online (Sandbox Code Playgroud)

我想dir直接在控制台上看到输出.

我知道我可以使用OUTPUT_VARIABLEERROR_VARIABLE参数捕获输出.但是,这会在命令运行结束时提供结果.

根据文档,输出通常应该通过

如果没有给出OUTPUT_*或ERROR_*选项,则输出将与CMake进程本身的相应管道共享.

我在Windows Vista上使用CMake 2.8.3

cmake

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

检测脚本从命令提示符启动或在Windows上"双击"

是否可以检测Python脚本是从命令提示符启动还是用户"双击"Windows上的文件浏览器中的.py文件?

python windows

7
推荐指数
2
解决办法
2535
查看次数

在Windows上反转os.path.normcase

是否有一种简单的方法可以从全小写路径获得"真实"区分大小写的路径.就像os.path.normcase的反向一样.

例如,考虑目录:

c:\StackOverFlow
Run Code Online (Sandbox Code Playgroud)

如果我有以下代码片段,如何获取d_real?

>>> import os
>>> d = os.path.normcase('C:\\StackOverFlow') # convert to lower case
>>> d
'c:\\stackoverflow'
>>> d_real = ... # should give 'C:\StackOverFlow' with the correct case
Run Code Online (Sandbox Code Playgroud)

python filenames path case-sensitive

6
推荐指数
1
解决办法
1739
查看次数

如何在__init__中定义属性

我想从成员函数中定义类中的属性.下面是一些测试代码,显示了我希望如何工作.但是我没有得到预期的行为.

class Basket(object):

  def __init__(self):
    # add all the properties
    for p in self.PropNames():
      setattr(self, p, property(lambda : p) )

  def PropNames(self):
    # The names of all the properties
    return ['Apple', 'Pear']

  # normal property
  Air = property(lambda s : "Air")

if __name__ == "__main__":
  b = Basket()
  print b.Air # outputs: "Air"
  print b.Apple # outputs: <property object at 0x...> 
  print b.Pear # outputs: <property object at 0x...> 
Run Code Online (Sandbox Code Playgroud)

我怎么能让这个工作?

python constructor properties

5
推荐指数
1
解决办法
3425
查看次数