Python 读写文件

读写文件

我们唯一不会改正的缺点是软弱。——拉罗什福科

文件路径

  • 检查路径有效性: os.path.exists()

import os

path = 'E:\TextCode\mdall\PythonBasic1.md'
result = os.path.exists(path)

print(result)

# 结果

# True
  • 拼接路径 os.path.join

import os

result = os.path.join('user', 'bin', 'spanm')

print(result)

# 结果

# user\bin\spanm
  • 查看文件大小 os.path.getsize(路径)

import os

path = 'E:\TextCode\mdall\PythonBasic1.md'
result = os.path.getsize(path)

print(result)
  • 创建新的文件夹 makedirs

import os

os.makedirs('./haha')  # 相对路径

# 结果就是在当前目录下创建一个haha的文件夹

  • 获取当前路径 getcwd()

import os

result = os.getcwd()

print(result)

# 结果
# E:\TextCode\Python\Python4
  • 切换为包含数据文件的文件夹 chdir(路径)

  • 路径一定是反斜杠 ‘/‘


import os

os.chdir('E:/TextCode/files')  # 改变路径

result = os.getcwd()  # 获取当前路径

print(result)

# 结果

# E:\TextCode\files

文件打开和读写

文件读

  • 基本语法

with open(路径,'读(r)或写(w)或后面插入(a)') as 变量名
  # readline 仅仅只读1行
  # readlines 一行一行读,也可以换成read()那它是一个一个读
  #  xxx = 变量名.read()
  xxx = 变量名.readlines()
   #一般情况里面跟for 循环
   for item in xxx:
     print(xxx.rstrip()) # 取消掉\r\n
  • 具体的写法
with open('text1.txt', 'r', encoding='utf-8') as data:
    content = data.readlines()  # 结果就是list
    print(content.rstrip())
  • 逐行读,readlines()

result = []
with open('text1.txt', 'r', encoding='utf-8') as data:
    content = data.readlines()  # 结果就是list
    print(content)
    print("--------------\r\n")
    for item in content:
        result.append(item.rstrip())  #取消掉右边的\r\n
    result.pop()  # 会多出一个\n所以去掉
    print(result)
  • 若是 JSON 文件 可以使用 json.load 直接读
with open('data.json', 'r', encoding='utf-8') as data:
    print(json.load(data))

# 这样读取出来就是个json文件

文件写入

  • 基本语法

with open(路径, "w", encoding="utf-8") as data:
     data.write(xxxxx)
  • 用到例子上

with open("text3.txt", "w", encoding="utf-8") as data:
    for index in range(5):
        data.write("测试写了"+str(index)+"次"+"\n")

# 结果
  • 附加模式,已经有文件 从后面加入

with open("text3.txt", "a", encoding="utf-8") as data:
    for index in range(5):
        data.write("测试写了"+str(index)+"次"+"\n")
# 结果

# 他就是在文件的最后加入数据

JSON 模块

  • json.dumps() 将对象变成字符串

  • json.loads() 将字符串变成对象

———文件不需要加 S——–

  • json.dump() 将对象编程字符串,并写入文件中去

  • json.load() 用户从 JSON 文件中读取数据

json.dump 和 json.load

  • 从文件中读取数据后写入文件

  • ensure_ascii=False 表示不要把 asc 码转换


import json
with open('data.json', 'r', encoding='utf-8') as data:
    content = json.load(data)
    with open('text4.txt', 'w', encoding='utf-8') as data2:
        json.dump(content, data2, ensure_ascii=False)

json.dumps 和 json.loads

  • json.dump

import json
obj = {
    "name": "哈哈哈",
    "Sex": "男"
}

result = json.dumps(obj)

print(type(result))

# 结果就是string
  • json.loads

import json
obj = '{"name": "哈哈哈","Sex": "男"}'

result = json.loads(obj)

print(type(result))

# 结果就是dict

文章作者: 雾烟云
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 雾烟云 !
  目录