import os, time
import sys
import re def read_old_part(filename, start, end):
content = []
recording = False
with open(filename) as f:
for line in f:
line = line.strip()
if line == end:
break
if recording:
content.append(line)
if line == start:
recording = True
# return '\n'.join(content)
return content def read_all_part(filename):
with open(filename) as f:
lines = f.readlines()
return lines def read_all_part_strip(filename):
with open(filename) as f:
all_part = []
for line in f:
line = line.strip()
all_part.append(line)
return all_part filename = "test.log"
start = 'def find_vcvarsall(version):'
end = 'def query_vcvarsall(version, arch="x86"):'
add_str1 = ''' vcvarsall = r"C:\Users\yuxinglx\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat"\n'''
add_str2 = " return vcvarsall\n\n"
old_str = read_old_part(filename, start, end)
all_str = read_all_part(filename)
add_str_strip = read_all_part_strip(filename)
old_str_nu = len(old_str)
all_str_nu = len(all_str)
all_str_strip_nu = len(add_str_strip) if all_str_nu == all_str_strip_nu:
for line in old_str:
if line in add_str_strip:
all_str_strip_nu = add_str_strip.index(old_str[0]) del all_str[all_str_strip_nu:(old_str_nu + all_str_strip_nu)]
all_str_nu = add_str_strip.index(start)
all_str.insert(all_str_nu + 1, add_str1)
all_str.insert(all_str_nu + 2, add_str2)
f = open('test.txt', 'w')
f.writelines(all_str)
f.close()
else:
print "it's worng"

test.log

        if i not in newList:
newList.append(i)
newVariable = os.pathsep.join(newList)
return newVariable def find_vcvarsall(version):
"""Find the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If
that fails it falls back to the VS90COMNTOOLS env var.
"""
vsbase = VS_BASE % version
try:
productdir = Reg.get_value(r"%s\Setup\VC" % vsbase,
"productdir")
except KeyError:
productdir = None # trying Express edition
if productdir is None:
vsbase = VSEXPRESS_BASE % version
try:
productdir = Reg.get_value(r"%s\Setup\VC" % vsbase,
"productdir")
except KeyError:
productdir = None
log.debug("Unable to find productdir in registry") if not productdir or not os.path.isdir(productdir):
toolskey = "VS%0.f0COMNTOOLS" % version
toolsdir = os.environ.get(toolskey, None) if toolsdir and os.path.isdir(toolsdir):
productdir = os.path.join(toolsdir, os.pardir, os.pardir, "VC")
productdir = os.path.abspath(productdir)
if not os.path.isdir(productdir):
log.debug("%s is not a valid directory" % productdir)
return None
else:
log.debug("Env var %s is not set or invalid" % toolskey)
if not productdir:
log.debug("No productdir found")
return None
vcvarsall = os.path.join(productdir, "vcvarsall.bat")
if os.path.isfile(vcvarsall):
return vcvarsall
log.debug("Unable to find vcvarsall.bat")
return None def query_vcvarsall(version, arch="x86"):
"""Launch vcvarsall.bat and read the settings from its environment
"""
vcvarsall = find_vcvarsall(version)
interesting = set(("include", "lib", "libpath", "path"))
result = {} if vcvarsall is None:
raise DistutilsPlatformError("Unable to find vcvarsall.bat")
log.debug("Calling 'vcvarsall.bat %s' (version=%s)", arch, version)
popen = subprocess.Popen('"%s" %s & set' % (vcvarsall, arch),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
try:

  test.txt

        if i not in newList:
newList.append(i)
newVariable = os.pathsep.join(newList)
return newVariable def find_vcvarsall(version):
vcvarsall = r"C:\Users\yuxinglx\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0cvarsall.bat"
return vcvarsall
def query_vcvarsall(version, arch="x86"):
"""Launch vcvarsall.bat and read the settings from its environment
"""
vcvarsall = find_vcvarsall(version)
interesting = set(("include", "lib", "libpath", "path"))
result = {} if vcvarsall is None:
raise DistutilsPlatformError("Unable to find vcvarsall.bat")
log.debug("Calling 'vcvarsall.bat %s' (version=%s)", arch, version)
popen = subprocess.Popen('"%s" %s & set' % (vcvarsall, arch),
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
try:

  

python文件读取,替换(带格式,python lib 库)的更多相关文章

  1. python文件读取和写入案例

    python文件读取和写入案例  直接上代码吧 都是说明 百度上找了很多,最终得出思路 没有直接可以读取修改的扩展,只能先读取,然后复制一份,然后在复制出来的文件里面追加保存 然后删除读的那个,但是缺 ...

  2. Python文件读取和数据处理

    一.python文件读取 1.基本操作 读取文件信息时要注意文件编码,文件编码有UFT-8.ASCII或UTF-16等. 不过在python中最为常用的是UTF-8,所以如果不特别说明就默认UTF-8 ...

  3. Python 文件读取

    1. 最基本的读文件方法: # File: readline-example-1.py file = open("sample.txt") while 1: line = file ...

  4. Linux下Python 文件内容替换脚本

    Linux下Python 文件替换脚本 import sys,os if len(sys.argv)<=4: old_text,new_text = sys.argv[1],sys.argv[2 ...

  5. Python——文件读取

    我们经常需要从文件中读取数据,因此学会文件的读取很重要,下面来介绍一下文件的读取工作:     1.读取整个文件     pi_digits.text 3.1415926535 8979323846 ...

  6. 初识python 文件读取 保存

    上一章最后一题的答案:infors.sort(key=lambda x:x['age'])print(infors)--->[{'name': 'laowang', 'age': 23}, {' ...

  7. python文件读取

    1.如何将一个“lessons.txt”文档一行行输出? myfile = file(‘lessons.txt’) for f in myfile.readlines(): print f myfil ...

  8. Python文件读取编码错误问题解决之(PyCharm开发工具默认设置的坑。。。)

    刚接触Python学习,正准备做个爬虫的例子,谁知道代码一开始就遇到了一个大坑,狂汗啊. 问题是这样的:我通过代码爬取了博客园首页的HTML代码并存入到blog.txt文件当中,然后准备读取出来之后进 ...

  9. Python文件读取常用方法

    1. 关于读取文件 f.read() 读取文件中所有内容 f.readline() 读取第一行的内容 f.readlines() 读取文件里面所有内容,把每行的内容放到一个list里面 注:因为文件指 ...

随机推荐

  1. flume安装使用+根据数据源分类

    安装搭建: 1)解压下载的flume(安装jdk1.6及其以上) 2)在conf文件夹里面建立example.conf文件 #example.conf:单节点Flume配置 #命名Agent a1的组 ...

  2. Oracle GoldenGate 同步数据至Hbase

    该方法没试过,先记下再说 1.软件版本说明: Goldengate 12c 12.2.0.1 for Oracle(源端) Goldengate 12c 12.3.0.1 for Bigdata (目 ...

  3. EXT.net 1.x TreePanel的一个坑

    Ext.net TreePanel有一个方法 drptreepanel.setChecked({ ids: idsarray, silent: true });  如果TreePanel里有1,3两个 ...

  4. 最新修改Oracle10gscott用户

    1.以system登录及输入自己设置口令; 2.更换sysdba身份: conn system/orcl as sysdba; 3.解锁scott用户(因装好默认是锁定的): alter user s ...

  5. Java随堂笔记二

    变量常量类型转换和命名规范 变量和常量 static double salary = 2500;​    //属性:变量    //变量作用域:    //类变量 static    // 局部变量 ...

  6. Lombok简介、使用、工作原理、优缺点

    1.Lombok简介官方介绍 Project Lombok is a java library that automatically plugs into your editor and build ...

  7. (转载) js 单引号替换成双引号,双引号替换成单引号 操作

    引言:刚开始用js遇到不少问题,表示看不懂,为什么替换单引号需要/g,现在知道/g是正则中的匹配全部 原文:http://blog.csdn.net/joyhen/article/details/43 ...

  8. unable to retrieve container logs for docker kubernetes

    参考 https://github.com/knative/docs/issues/300 This is what happens when the build is successful and ...

  9. rsync+inotify实现多台服务器之间数据实时同步

    配置环境 1.操作系统:CentOS6.5-X86_64 2.rsync客户端(rsync+inotify):192.168.200.82 3.rsync服务端:192.168.200.80,192. ...

  10. JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删改查),事件

    JavaScript---Dom树详解,节点查找方式(直接(id,class,tag),间接(父子,兄弟)),节点操作(增删改查,赋值节点,替换节点,),节点属性操作(增删改查),节点文本的操作(增删 ...