python的文件读取、路径处理

一、json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads()。

1.json.dumps将一个Python数据结构转换为JSON:

import json
data = {
    'name' : 'myname',
    'age' : 100,
}
json_str = json.dumps(data)
json.dump(obj,f,ensure_ascii=False,indent=4,separators=(',',':'))

ensure_ascii表示的意思是是否要转为ASCII码,如果打开(默认打开True),那么转为json后中文会变成ASCII编码,如果关闭后中文还是中文,不会变为ASCII编码。indent表示 indent是缩进的意思
separators:分隔符,实际上是(item_separator, dict_separator)的一个元組,默认的就是(‘,’,’:’);这表示dictionary內keys之间用“,”隔开,而KEY和value之间用“:”隔开。

2.json.loads将一个JSON编码的字符串转换回一个Python数据结构:

data = json.loads(json_str)

3.json.dump() 和 json.load() 来编码和解码JSON数据,用于处理文件。

with open('test.json', 'w') as f:
    json.dump(data, f)
 
with open('test.json', 'r') as f:
    data = json.load(f)

二、 Python的标准库中的os模块包含普遍的操作系统功能。如果需要程序能够与平台无关的话,这个模块尤为重要。它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。os模块设计目录和文件等的操作。

    os.path.dirname功能:去掉文件名,返回目录
    os.path.join() 函数用于路径拼接文件路径,可以传入多个参数
    sys.executable返回python解释器的路径
    os.path.abspath:获取的当前执行脚本的完整路径
    os.makedirs() 方法用于递归创建目录
    	path -- 需要递归创建的目录,可以是相对或者绝对路径。。
    	mode -- 权限模式。该方法没有返回值。
    os.path.exists()就是判断括号里的文件是否存在的意思,括号内的可以是文件路径。
    

hasattr(object, name)
object – 对象。
name – 字符串,属性名。

# hasattr(sys,'frozen'):判断sys对象是否有'frozen'属性

os.path.dirname(file)返回脚本的路径,但是需要注意一下几点:
1、必须是实际存在的.py文件,如果在命令行执行,则会引发异常NameError: name ‘file’ is not defined
2、在运行的时候如果输入完整的执行的路径,则返回.py文件的全路径如:
python c:/test/test.py 则返回路径 c:/test ,如果是python test.py 则返回空
3、结合os.path.abspath用,效果会好,如果大家看过一些python架构的代码的话,会发现经常有这样的组合
os.path.dirname(os.path.abspath(file)),os.path.abspath(file)返回的是.py文件的绝对路径
这就是os.path.dirname(file)的用法,其主要总结起来有:
1、不要已命令行的形式来进行os.path.dirname(file)这种形式来使用这个函数
2、结合os.path.abspath()使用

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值