配置文件的选择_Cisco备份配置文件

配置文件的选择_Cisco备份配置文件不同模式打开文件的完全列表:模式描述r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 

不同模式打开文件的完全列表:

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
a 打开一个文件用于追加。如果该文件不存在则创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件不存在则创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 

有文件config.txt如下,要读取文件中的值

m_url=https://onetouch-partner.aba.com/login.htm?
b_url=https://onetouch-partner.aba.com/ptnBasedata/crm/
c_url=https://onetouch-partner.aba.com/ptnBasedata/crm/customerList.htm
titls=[公司名称,创建时间,访问时间,生成时间,签约情况,跟进情况,公司地址,联系人姓名,电话,企业邮箱,联系人邮箱]
filename=客户信息
word=IDL2020888**

file 对象方法
f.read([size]):size 未指定则返回整个文件,如果文件大小 >2 倍内存则有问题,f.read()将整个文件内容作为一个字符串,读到文件尾时返回””(空字串)。
f.readline():返回一行。
f.readlines([size]) :返回包含size行的列表, size 未指定则返回全部行。
for line in f: print line :通过迭代器访问。

f.write(“hello\n”):如果要写入字符串以外的数据,先将他转换为字符串。
f.close() 关闭文件

 

绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。
相对路径就是以当前文件为基准进行一级级目录指向被引用的资源文件。

../ 表示当前文件所在的目录的上一级目录
./ 表示当前文件所在的目录(可以省略)
/ 表示当前站点的根目录(域名映射的硬盘目录)
py文件与要读取文件在统一目录下可直接读取,不用家路径

 

python中转义用\,路径用/,因此windows路径可以是/(与linux一致)也可以用\\,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows
python读文件需要输入的目录参数,以下path都是正确的:
path1 = r”C:\Windows\temp\readme.txt” # “\”为字符串中的特殊字符,加上r后变为原始字符串,则不会对字符串中的”\t”、”\r” 进行字符串转义
path2 = “c:\\windows\\temp\\readme.txt” # 用一个”\”取消第二个”\”的特殊转义作用,即为”\\”
path3 = “c:/windows/temp/readme.txt” # 用正斜杠做目录分隔符也可以转到对应目录,并且在python中path3的方式也省去了反斜杠\转义的烦恼

 

f = open(file) # 打开文件
content = f.read()
print(content)
f.close() # 关闭文件

#read
with  open('sample1.txt') as f:
    content = f.read()
    print(content)

#readline读取该文件:
with  open('a.txt') as f:
    print(f.readline())
    print(f.readline(5))

#readlines方法没有参数:
with  open('a.txt') as f:
    print(f.readlines())


f = open('sample3.txt','w') # 打开文件
content = f.write('hello,my friends!\nthis is python big data analysis')
f.close() # 关闭文件


with  open('sample3.txt','w') as f:
    f.write('hello,my friends!\nthis is python big data analysis')

 

 

def read_myconfig():
    ss=[]
    f = open("config.txt",'r',encoding='utf-8')    #返回一个文件对象
    # print(f)
    for line in f:
        ss.append(line.split('=')[1].strip("\n"))
    f.close()
    print(ss)
read_myconfig()

def read_myconfig():
    ss=[]
    f = open("config.txt",'r+',encoding='utf-8')    #返回一个文件对象
    line = f.read()    #调用文件的 readline()方法
    f.close()
    # print(line.split('\n'))
    for i in (line.split('\n')):
        ss.append(i.split('=')[1])#以每行的换行划分,将每行作为列表的一个元素。
    print(ss)
read_myconfig()

def read_myconfig():
    ss=[]
    f = open("config.txt",'r+',encoding='utf-8')    #返回一个文件对象
    line = f.readline()    #调用文件的 readline()方法
    # print(line)
    while line:
        ss.append(line.split()[0].split('=')[1])#先过滤掉行末的换行
        line = f.readline()
    f.close()
    print(ss)
read_myconfig()

def read_myconfig():
    ss=[]
    f = open("config.txt",'r',encoding='utf-8')    #返回一个文件对象
    line = f.readlines()    #调用文件的 readline()方法
    f.close()
    # print(line)
    for i in line:
        ss.append(i.split('=')[1].strip("\n"))
    print(ss)
read_myconfig()


def read_myconfig():
    f = open("config.txt",'r',encoding='utf-8')    #返回一个文件对象
    line = f.readlines()    #调用文件的 readline()方法
    f.close()
    # print(line)
    ss=[i.split('=')[1].strip("\n") for i in line]
    print(ss)
read_myconfig()

  

 结果如下:

['https://onetouch-partner.aba.com/login.htm?', 'https://onetouch-partner.aba.com/ptnBasedata/crm/',
'https://onetouch-partner.aba.com/ptnBasedata/crm/customerList.htm',
'[公司名称,创建时间,访问时间,生成时间,签约情况,跟进情况,公司地址,联系人姓名,电话,企业邮箱,联系人邮箱]', '客户信息', 'IDL2020888**']

在python中存在继承了 回车符\r 和 换行符\n 两种标记

aa=’https://\rone touch-pa rtner.aba.com/login.htm?\n’
print(aa.replace(‘\n’, ”).replace(‘\r’, ”) ) 去掉 aa字符内所有的 回车符和换行符
print(aa.replace(‘ ‘, ”) ) 去掉 aa字符内所有的 空格
print(aa.strip()) 只能够去除aa字符串首尾的空格,不能够去除中间的空格

 

 

常用的配置文件后缀是.ini、.conf、.py,当然还有使用.json、.txt的,推荐使用常用的.ini、.py

用Python变量作为配置文件格式

把配置直接用变量的形式写到一个模块中,在需要读取配置的地方直接import模块就能得到配置变量:

配置文件示例:

# config.py

listen_port = 4444

use_epoll = True

…

在读取配置的地方:

import config

port_num = config.listen_port

if config.use_epoll:

    …

优点

直接用python变量作为配置文件格式的优点是显然的:

l  不用任何解释器来解释配置文件。Python解释器本身就可以。

l  使用自然、方便,直接可用,和其他变量的使用没有任何区别。

l  学习成本低,不需要学习其他配置文件的格式和语法。

缺点

方便之处在于不用parser,缺点也在于不用parser。通常情况,配置文件是人负责写,程序负责读。但如果配置文件既要让人写也要让代码写。比如程序的配置可以直接改配置文件,同时也提供了一套界面让用户在界面上修改配置。在界面上修改的配置,最终也是反映到配置文件中,这就要求代码修改配置文件了。此时会有少许不便。

 

用.ini、.tx作为配置文件格式

.ini、.txt配置文件使用方法是一致的,只是一个后缀的区别,这里以ini配置文件来介绍,这类配置文件我们使用内置configparser库来使用,它可以实现配置文件的写入、更新、删除、读取等操作非常方便,建议使用这种方式。新建一个config.ini的配置文件内容如下:

[mysql]
name = admin
host = 255.255.255.0
proxy = 6037
password = 123456
pool = true
time = 3
#其中[]中的是section节点,该节点下的等式是键值对

常用方法如下:

# -*- coding: utf-8 -*-

import configparser

config = configparser.ConfigParser()
config.read("Config.ini", encoding="utf-8")

config.sections()  # 获取section节点
config.options('mysql')  # 获取指定section 的options即该节点的所有键
config.get("mysql", "name")  # 获取指定section下的options

config.items("mysql")  # 获取section的所用配置信息

config.set("mysql", "name", "root")  # 修改值

config.has_section("mysql")  # 是否存在该section
config.has_option("mysql", "password")  # 是否存在该option

config.add_section("redis")  # 添加section节点
config.set("redis", "name", "redis_admin")  # 设置指定section 的options

config.remove_section("redis")  # 整个section下的所有内容都将删除

config.remove_option("mysql", 'time')  # 删除section下的指定options

config.write(open("Config", "w"))  # 保存config

  

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/167849.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • shell中if语句_shell脚本if判断

    shell中if语句_shell脚本if判断提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、if语句1.if单分支判断2.if双分支判断3.if多分支判断总结提示:以下是本篇文章正文内容,下面案例可供参考一、if语句1.if单分支判断●当“条件成立”时执行命令序列●否则不执行任合操作语法格式♦if空格条件测试then命令序列fiif加空格加一个条件测试,如果这个条件测试结果为真那么就执行then后面的命令序列,这个命令序列可以是一条命令也可以是多条命令只要条件测试为真,.

    2022年8月18日
  • PyCharm激活码永久有效PyCharm2017.3.6激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2017.3.6激活码教程-持续更新,一步到位PyCharm激活码永久有效2017.3.6激活码教程-Windows版永久激活-持续更新,Idea激活码2017.3.6成功激活

    2022年6月19日
  • c++ vector下标_vectorat

    c++ vector下标_vectoratC语言(加了层语法糖的汇编)为了性能并不支持数组的越界检查,每次检查会多付出2-3倍的时间。而vector以at的形式支持越界检查,但也支持C语言风格的[]高效访问,没错C++提供了足够的自由。当要获取std::vector的第n个元素,下面几种方式都可以:  std::vector<int>vec; size_tn=1; in…

    2022年9月27日
  • getattr getattribute_getparameter返回值

    getattr getattribute_getparameter返回值问题描述今天开发验证码验证功能,需要将手机号和对应的验证码设置到session中以便后面的验证,具体代码如下:1.发送验证码并把验证码保存到session中protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresponse)throwsServletException,IOException{ try{mresponse=response;St

    2022年10月31日
  • freemarker自己定义标签报错(三)

    freemarker自己定义标签报错(三)

    2021年12月7日
  • 中国主流的大数据分析厂商

    中国主流的大数据分析厂商随着互联网和IT技术的推进,大数据的应用逐渐渗透到各行各业。尤其是数据体量大的互联网、金融、银行、制造行业。大数据正逐渐改变企业的运营模式,市场导向,进而惠及人们的生活。“大数据”这一概念最早在国外被提及。之后国内外兴起了一系列大数据技术,包括大数据硬件类、大数据分析类、大数据数据处理类等等,也因此诞生了一批大数据厂商。其中最为热门的是大数据分析技术,可以直接应用到企业生产经营,来带直…

    2022年5月17日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号