Python 学习笔记 - 文件处理

print()--打印输出

语法

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

参数

  • objects -- 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep -- 用来间隔多个对象,默认值是一个空格。
  • end -- 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file -- 要写入的文件对象。
  • flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

input() --读取输入

语法

input([prompt])#接受一个标准输入数据,返回为 string 类型。

参数 

  • prompt --提示信息

open() --打开文件 

语法

file object = open(file_name [, access_mode][, buffering])

 参数

  • file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
  • access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)
  • buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。

 access_mode的不同模式

模式描述
t文本模式 (默认)。
x写模式,新建一个文件,如果该文件已存在则会报错。
b二进制模式。
+打开一个文件进行更新(可读可写)。
U通用换行模式(不推荐)。
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

 文件写入操作

'''
f=open("./dara.txt",mode='w')
f.write("hello")
f.close()
'''
with open("./dara.txt",mode='w') as f:
    f.write("hello")
    f.writelines(["hello","world"])

文件读取操作

with open("./dara.txt", mode="r", encoding="utf8") as f:
    #line = f.read() 
    lines = f.readlines()
    print(lines)

csv文件读写

csv模块中的reader类和writer类可以读写序列化数据,也可以使用DictReader类和DictWriter类以字典形式读写数据

文件写入操作
import csv

with open('./data.csv', mode='w', newline="", encoding='utf8') as file:
    fw = csv.writer(file)
    fw.writerow("abcdefgh")  # a,b,c,d,e,f,g,h
    fw.writerow(["abcdef", "ghijkl"])  # abcdef,ghijkl
    fw.writerows(["111222", "333444"])  #1,1,1,2,2,2
                                        #3,3,3,4,4,4
    fw.writerows([("111", "222"), ("333", "444")])#111,222
                                                  #333,444
文件读取操作 
import csv

with open('./data.csv', mode='r', newline="", encoding='utf8') as file:
   cr=csv.reader(file)
   for line in cr:
       print(line)
"""
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
['abcdef', 'ghijkl']
['1', '1', '1', '2', '2', '2']
['3', '3', '3', '4', '4', '4']
['111', '222']
['333', '444']
"""
dict方式写入数据
import csv

with open('./data.csv', mode='w', newline="", encoding='utf8') as file:
    field_name=['username','password'] #表头序列
    cdw=csv.DictWriter(file,fieldnames=field_name) #指定表头
    cdw.writeheader()#写入表头

    cdw.writerow({'username': 'xiaoming', 'password': '111222'})
    cdw.writerow({'username': 'xiaowang', 'password': '111222'})
    """
    username,password
    xiaoming,111222
    xiaowang,111222
"""
dict读取数据
import csv

with open('./data.csv', mode='r', newline="", encoding='utf8') as file:
    dr=csv.DictReader(file)
    for line in dr :
        print(line)
"""
{'username': 'xiaoming', 'password': '111222'}
{'username': 'xiaowang', 'password': '111222'}
"""

json模块文件读写

转换成字符串--dumps()
import json

jstr = json.dumps(['hello', {'username': 'xiaoming'}])
#转换成字符串
print(jstr, type(jstr))#["hello", {"username": "xiaoming"}] <class 'str'>

with open('./data.txt', mode='w') as file:
    file.write(jstr)   #["hello", {"username": "xiaoming"}]
解析为Python格式--loads()
import json

ls=json.loads('["hello",{"username":"xiaoming"}]')#['hello', {'username': 'xiaoming'}] <class 'list'>
print(ls,type(ls))
json文件写入操作--dump()
import json
data={"id": 1,"test_steps": ["1.打开浏览器","2.输入用户信息"]}
with open('./data.json',mode='w',encoding='utf8') as file:
    json.dump(data,file)
#{"id": 1, "test_steps": ["1.\u6253\u5f00\u6d4f\u89c8\u5668", "2.\u8f93\u5165\u7528\u6237\u4fe1\u606f"]}
json文件读取操作--load()
import json

with open('./data.json',mode='r',encoding='utf8') as file:
    data=json.load(file)
    print(data,type(data))
#{'id': 1, 'test_steps': ['1.打开浏览器', '2.输入用户信息']} <class 'dict'>

ini文件解析

写入ini文件
import configparser
#实例化对象
config =configparser.ConfigParser()

config['Default'] = {
    "IP":"123.0.0.1",
    "port":3000,
    "user":"root",
    "passwd":123456
}
config['uat']={
    "IP":"192.168.1.101",
    "port":3000,
    "user":"root",
    "passwd":123456
}
with open('./data.ini',mode='w',encoding='utf8') as file:
    config.write(file)
"""
[Default]
ip = 123.0.0.1
port = 3000
user = root
passwd = 123456

[uat]
ip = 192.168.1.101
port = 3000
user = root
passwd = 123456

"""
读取ini文件
import configparser
#实例化对象
config =configparser.ConfigParser()

config.read("./data.ini")
print(config.sections()) #['Default', 'uat']
for section in config.sections():
    print(section) #Default uat
    print(config[section]) #<Section: Default> <Section: uat>
    for key in config[section] :
        print(key,config[section].get(key))
    """
    ip 123.0.0.1            ip 192.168.1.101
    port 3000               port 3000
    user root               user root
    passwd 123456           passwd 123456
    """

excel文件解析

写入操作
from openpyxl import Workbook

#实例化
wb=Workbook()
#创建一个表格
worksheet=wb.create_sheet('data')
#wordsheet['A1']=20
worksheet.append(['uesername','password'])#批量写入
#保存
wb.save('./data.xlsx')
读取操作
from openpyxl import load_workbook
from openpyxl.worksheet.worksheet import Worksheet

wb=load_workbook('data.xlsx')
print(wb.sheetnames) #['Sheet', 'data'] 表格名称
#ws:Worksheet 指定类型Worksheet
ws:Worksheet=wb['data'] #获取data表的数据

for row in ws.values :  #('uesername', 'password')
    print(row)

yaml文件操作

解析数据
import yaml
#对象 animal: pets
#yaml 数组
data = """ 

- Cat
- Dog
- Goldfish
"""
data2={
    "name":"xiaoming",
    "age":20
}
print(yaml.safe_load(data)) #['Cat', 'Dog', 'Goldfish']
print(yaml.safe_dump(data2))#字典转换成yaml格式
"""
age: 20
name: xiaoming
"""
写入文件
import yaml

data = {
    'data':[1,2,3,4,5],
    'name':'xiaoming',
    'age':20
}
with open('./data.yaml',mode='w',encoding='utf8') as file:
    yaml.safe_dump(data,file)
"""
age: 20
data:
- 1
- 2
- 3
- 4
- 5
name: xiaoming
"""
文件读取
import yaml

with open('./data.yaml',mode='r',encoding='utf8') as file:
    print(yaml.safe_load(file)) 
#{'age': 20, 'data': [1, 2, 3, 4, 5], 'name': 'xiaoming'}

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值