前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置文件的选择_Cisco备份配置文件

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

作者头像
全栈程序员站长
发布2022-09-20 09:36:40
1.3K0
发布2022-09-20 09:36:40
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

模式

描述

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件不存在则创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件不存在则创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

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

代码语言:javascript
复制
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的方式也省去了反斜杠\转义的烦恼

代码语言:javascript
复制
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')
代码语言:javascript
复制
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() 

 结果如下:

代码语言:javascript
复制
['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的配置文件内容如下:

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

常用方法如下:

代码语言:javascript
复制
# -*- 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.cn/167849.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯企业邮
腾讯企业邮(Tencent Exmail)是腾讯基于多年海量用户邮件系统研发和运营经验,为企业量身订造的一套办公用邮箱系统。稳定、简洁和快速,整合了丰富的企业应用,涵盖资源共享、消息发布、组织管理等方面。腾讯企业邮和微信生态深度整合,为您提供便捷高效的移动邮件解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档