python合集(7)-------------文件操作

1.文件操作

1.1文件常规操作

在这里插入图片描述

属性描述
file.close返回true,若文件没有关闭,返回false
file.mode返回所打开文件的访问模式
file.name返回文件名称
file.softspaceprint输出后跟空格符返回false,反之为true

在python中,可以使用open函数,打开一个已经存在的文件,或者创建一个新文件。
如果文件不存在那么创建,如果存在那么就先清空,然后写入数据。open(文件名,访问模式) e.g. f = open(‘test.txt’, ‘w’)
文件的作用:
默认数据是加载到内存中,结果也是保存到内存中, 程序执行结束,所有的数据释放,如果没有将数据保存在文件中,那么将是一场悲剧。

1.1.1 文件的打开

文件打开的模式:
要读取二进制文件,比如图片、视频等等,用’rb’, ‘wb’, 'ab’等模式打开文件即可
在这里插入图片描述

mode:
    r: 只能读文件
    w: 只能写入(清空文件内容)
    a+: 读写(文件追加写入内容)
注意:代码所操作文件路径的一致性
f = open('hello.txt','w+') :文件创建
f.write('linux\n') :文件写入
result = f.readline() :文件读取
f.close() :文件关闭
print(result)

1.1.2 文件的关闭

方法一: 调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,
并且操作系统同一时间能打开的文件数量也是有限的:
方法二: Python引入了with语句来自动帮我们调用close()方法 :

with open('westos.txt','r') as f:
print(f.read())

1.1.3 with语句

with open('westos.txt', 'w+') as f:
    f.write('westos linux\n') # 写入文件
    f.seek(0, 0)      # ****: 移动指针到文件最开始
    print("当前指针的位置:", f.tell()) #0
    f.seek(0, 2)      # 移动指针到文件末尾
    print("当前指针的位置:", f.tell()) #14
    print(f.read()) 
注:
seek(offset, from)2个参数: offset:偏移量 from:方向
 0:表示文件开头;
1:表示当前位置;
2:表示文件末尾      

2.OS模块

os,语义为操作系统,处理操作系统相关的功能,可跨平台。 比如显示当前目录下所有文件/删除某个文件/获取文件大小
os模块中的rename()可以完成对文件的重命名操作。
rename(需要修改的文件名, 新的文件名)
os模块中的remove()可以完成对文件的删除操作
remove(待删除的文件名)

在这里插入图片描述
test :目录与文件名的拼接并获取

import  os  获取主机信息,Linux系统使用os模块
import platform 获取主机信息,windows系统使用platform模块
print(os.name) #获取操作系统类型

try:  #可能出现报错的代码
    uname = os.uname()
except Exception:  #如果出现异常,执行以下代码
    uname = platform.uname()
finally:  #始终执行
    print(uname)
    
envs = os.environ #获取系统的环境变量
os.environ.get('PASSWORD')
print(envs)

BASE_DIR = os.path.dirname(__file__) :获取当前文件对应的目录名
setting_file = os.path.join(base_dir, 'config.conf') :目录名和文件名拼接
print(setting_file)
filename = '/home/westos/PycharmProjects/pythonProject/6-18/config.conf' print(os.path.basename(filename))
print(os.path.dirname(filename))

应用os模块进行文件的增删改查同linux,这里不多赘述

3. json模块详解

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。

JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。

这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。

3.1 python数据格式与json数据格式的相互转换

3.1.1 转换规则

在这里插入图片描述

python转换为json
pythonjson
obiectdict
arrylist
stringunicode
number(int)int,code
number(real)float
TRUETRUE
FALSEFALSE
nullNONE

import  json
###**将python代码成json字符串**###
users = {'name':'westos', "age":18, 'city':'西安'}
json_str = json.dumps(users)
with open('hello.json', 'w+') as f:
    json.dump(users, f, ensure_ascii=False#:中文可以成功存储, indent=4 #缩进为4个空格)
    print("store success")
print(json_str, type(json_str))

###**将json字符串解码成python代码**###
with open('hello.json') as f:
    python_obj = json.load(f)
    print(python_obj, type(python_obj))

3.2 txt文件转换为execl文件

import pandas
hosts = [
    {'host':'172.25.6.1', 'hostname':'server1', 'idc':'jidong'},
    {'host':'172.25.6.2', 'hostname':'server2', 'idc':'tengxun'},
    {'host':'172.25.6.3', 'hostname':'server3', 'idc':'huawei'},
    {'host':'172.25.6.4', 'hostname':'server4', 'idc':'ali'}
]
df = pandas.DataFrame(hosts)
 print(df)      ###:转换数据类型
df.to_excel('hosts.xlsx') ### :excel储存
print('success') ### :
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值