python的文件操作

一、文件的基本操作

1.读文件read

f=open(filename,'r',encoding='utf-8')
data=f.read() # 读文件
f.close() # 关闭文件


# 1.绝对路径的易错点  文件路径中'\'前要加转义字符   或者  使用r使转义字符失效
f=open('c:\\windows\\users\\first.txt','r',encoding='utf-8')
f=open(r'c:\windows\users\first.txt','r',encoding='utf-8')

# 2.要确保路径存在,否则会报错 filenotfounderror 怎么判断路径是否存在
import os #导入操作系统判断路径是否存在
exists = os.path.exists('c:\\windows\\users\\first.txt') # exists是bool类型

2.写文件write

f=open(filename,'w',encoding='utf-8')
data=f.write() # 写文件
f.close() # 关闭文件

# 1.w模式的特点: 先清空文件,再写入文件
# 2.a模式的特点,在文件的末尾写入

3.文件的打开模式(要注意游标的位置,游标的位置会随着文件的读写进行移动)

在这里插入图片描述

# 1.移动光标位置
f.seek(n)
# 将游标位置重置为起始位置
f.seek(0) 



# 2.获取光标位置
p=f.tell()

# 3.strip()默认是移除字符串首尾的空格或换行符  也可通过strip("需要移除的字符序列")将需要移除的字符序列移除
line.strip()   


# 4.读文件的一些操作
# read()读所有
data=f.read()
# read(n) 读n个字符(r模式,一个中文字用3个字节表示)或n个字节(rb模式)
f.read(1)
# readline()读一行
str=f.readline()
# readlines() 按行读取,结果是列表类型,每行作为列表的一个元素
list_data=f.readlines()
# 循环读大文件 
for line in f:
	print(line.strip())

4.with上下文管理器

# 使用上下文管理器不需要再对文件进行关闭操作
with open(filename,'r',encoding='utf-8') as f: 
 pass

5.练习题

# 根据要求修改文件 将文件中的河南省替换为123
filename = "E:/file/2011年1月销售数据.txt"
with open(filename, 'r', encoding='utf-8') as readfile, open(r'update.txt', 'w', encoding='utf-8') as newfile:
    for line in readfile:
        new_line = line.replace("河南省", '123')
        newfile.write(new_line)
# 重命名文件
import shutil
shutil.move("update.txt", "2011年1月销售数据.txt")

二、操作excel格式的文件

1.打开excel文件 新建excel文件

from openpyxl import workbook ,load_workbook
wb = workbook.Workbook()   # 创建excel 且默认会创建一个Sheet
wb = load_workbook('E://file//11月11日名单.xlsx') # 打开excel

sheet相关操作

# 1.获取excel中所有sheet的名称
"""
print(wb.sheetnames)   # ['Sheet1', 'Sheet2', 'Sheet3']
"""

# 2.选择sheet 基于名称 基于索引
"""
sheet = wb['Sheet1']
"""

"""
sheet = wb.worksheets[0]
value = sheet.cell(1, 1).value  # 读第一行第一列
print(value)
"""

# 3.循环所有的sheet 基于名称 基于索引
"""
for name in wb.sheetnames:
    sheet = wb[name]
    cell= sheet.cell(1,1)
    print(cell.value)
"""

"""
for sheet in wb.worksheets:
    cell= sheet.cell(1, 1)
    print(cell.value)
"""

"""
for sheet in wb:
    cell = sheet.cell(1,1)
    print(cell.value)
"""

2.读单元格内容

# 读单元格的内容,先获取shell
sheet = wb.worksheets[0]

# 1.读n行n列的单元格
"""
cell = sheet.cell(1, 1)
print(cell.value)
"""

# 2.获取某个单元格
"""
cell = sheet['A2']
print(cell.value)
cell = sheet['D4']
print(cell.value)
"""

# 3.读第n行所有单元格
"""
for cell in sheet[1]:
    print(cell.value)
"""

# 4.输出所有行的数据
"""
for row in sheet.rows:
    print(row[0].value,row[1].value) # 输出第一和第二列  也就是输出前两列的元素
"""

# 5.输出所有列的数据
"""
for col in sheet.columns:
    print(col[0].value) #输出每列的第一个元素  也就是输出第一行的元素
"""

3.读合并单元格

在这里插入图片描述

from openpyxl import workbook ,load_workbook
wb =load_workbook('E://file//11月11日名单.xlsx')  # 打开excel
print(wb.sheetnames)   # ['Sheet1', 'Sheet2', 'Sheet3']

# 读合并单元格,单元格的类型
sheet=wb.worksheets[2]
for row in sheet.rows:
    print(row[0],row[0].value)
'''
输出结果:
<Cell 'Sheet3'.A1> 部门名称
<Cell 'Sheet3'.A2> 研究生院
<MergedCell 'Sheet3'.A3> None
<MergedCell 'Sheet3'.A4> None
<MergedCell 'Sheet3'.A5> None
<MergedCell 'Sheet3'.A6> None
<MergedCell 'Sheet3'.A7> None
<MergedCell 'Sheet3'.A8> None
<MergedCell 'Sheet3'.A9> None
<MergedCell 'Sheet3'.A10> None
<MergedCell 'Sheet3'.A11> None
<MergedCell 'Sheet3'.A12> None
<MergedCell 'Sheet3'.A13> None
'''

4.写Excel操作

from openpyxl import load_workbook
wb=load_workbook('E://file//11月11日名单.xlsx')
sheet=wb.worksheets[2]

# 修改某一单元格的值 方法1
cell=sheet.cell(1,1)
cell.value='这里是新名字'
wb.save('E://file//1.xlsx')

# 修改某一单元格的值 方法2
sheet['A1']='开始'
wb.save('E://file//2.xlsx')

# 修改某些单元格的值 
cell_list = sheet['C1':'D2']
i=0
for row in cell_list:
    i=i+1
    j=0
    for cell in row:
        cell.value=i+j
        j=j+1
    wb.save('E://file//3.xlsx')

最后修改某些单元格的值的效果:
在这里插入图片描述

5.写入公式 SUM()

sheet['F14']='=SUM(F2:F13)'
wb.save('E://file//4.xlsx')

在这里插入图片描述

6.文件的绝对和相对路径

import os

# 获取当前文件的上级目录
base_dir=os.path.dirname(os.path.abspath(__file__))
# 路径拼接
file_path=os.path.join(base_dir,'dir1','filename')

补充:python项目打包
1.安装第三方软件 在线安装方式 pip install PyInstaller
2.执行打包操作 pyinstaller -F 22cqqCode\PycharmProjects\pythonProject\studentsys\stusystem.py
3.可执行文件保存到了C:\Users\86136\dist\路径下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值