Python---文件操作步骤

一、文件类型(编码不同分类)
1.文本文件:基于字符编码,存储的是普通字符串,不包括字体、字号、颜色、等信息,可通过文本编辑器显示和编辑。如,txt/.py/yhtml/.csv/.xls/.xlsx
2、二进制文件:基于值编码的,以字节形式存储,其编码长度根据值的大小长度可变,如,jpg/avi等图片,音频或视频文件

二、文件的操作
1、使用open()函数打开(或建立)文件,返回一个file对象;
2、使用file对象的读/写方法对文件进行读/写的操作;
3、使用低了对象的close()方法关闭文件。
4、示例如下:

4.1  示例一:(读取纯英文文件)
#实例一、打开纯英文文件
#file = open('../Stu_pack/See You Again.txt')                 #相对路径打开文件,并创建文件对象
file = open( 'C:\\Users\\Administrator\\Desktop\\202209327张培森\\Stu_pack\\See You Again.txt')        #用绝对路径打开
# file.read()         #一次性读取全部内容
# print(file.read())
f_r = file.readlines()        #一行一行读取内容存放列表中
for line in f_r:
    print(line)
结果展示

4.2   打开有中文或其他语言文本
#打开有中文或其他语言文本
file = open('../Stu_pack/Dream It Possible.txt','rt',encoding = 'utf-8')  
f_r = file.readlines()
for line in f_r:
    print(line)
        打开文件时需要指定正确的字符编码(例如UTF-8)以确保正确读取和处理非英文字符。在上面的代码中,Dream It Possible.txt是待打开的文件名,utf-8是文件的字符编码。通过指定encoding='utf-8'参数,我们确保了文件以UTF-8编码打开,可以正确处理中文或其他非英文字符。 

示例展示

4.3  读取纯中文文件也是如此!


示例二:打开二进制文件(打开图片)
#示例二、打开二进制文件
from PIL import Image      #导入第三方库pillow中的image图片库模块
im = Image.open('../Stu_pack/Love_Star.PNG')       #创建打开文件对象
im.save('Love_Star.PNG')        #将打开的文件保存在指定的当前文件夹里
im.show()   #给当前窗口显示文件夹
示例三:写入文本文件
# 示例三、 写文本文件,像当前文件夹demo里写入文件test.txt其内容为10行自己 的姓名学号,每行前面有序号
with open('test.txt','w',encoding = 'utf-8') as file:
    for i in range(1,11):
        file.write(str(i)+'\t'+'202209327 张培森 '+'\n')
        
with open('test.txt',encoding = 'utf-8') as file:
    print(file.read())
三、Excel文件的读写
3.1、第三方库模块的安装(读取:xlrd,写入:xlwt)

3.2、示例1:读取excel文件内容,将结果保存以列表中
   
操作步骤:
      (1)导入模块xlrd
      (2)打开工作簿book
      (3)指定工作簿的表单sheet
      (4)根据行列序号读取内容

#(1)导入模块xlrd
import xlrd
#(二)打开工作簿book
wb = xlrd.open_workbook('../Stu_pack/school.xls')     #创建文件工作簿wb
#(3)指定工作簿的表单sheet
sheet=wb.sheet_by_index(0)       #打开表单并创建对象sheet
#(4)根据行列序号读取内容
schools = []        #创建定义一个二维列表存放每行数据
for row in range(sheet.nrows):
    school = []           #定义一个一维列表存放单元格内容
    for col in range(sheet.ncols):
        content = sheet.cell_value(row,col)        #将单元格的内容存放在变量content变量里面
        school.append(content)    #将单元格内容追加到一维列表里面
    schools.append(school)    #将每一行的内容追加到二维列表中
for school in schools:
    print(school)

3.3、Excel文件的写入操作步骤
(1)导入模块:xlwt
(2)构造工作簿:Workbook
(3)为工作簿添加表单:Worksheet
(4)根据行列序号写入内容
(5)保存文件

示例2:将示例1读取的excel文件内容,写入到另一个excel并保存到excel中并保存在R&Q_pic文件夹里,对学校所在省份进行简单判断,第一行合并单元格显示标题
# (1)导入模块:xlwt 和xlrd
 
import xlrd 
import xlwt
#安装第三方库xlwt
#(2)读取文件内容
def read_excel(file_name):
    wb = xlrd.open_workbook(file_name)
    sheet=wb.sheet_by_index(0) 
    schools = []        #创建定义一个二维列表存放每行数据
    for row in range(sheet.nrows):
        school = []           #定义一个一维列表存放单元格内容
        for col in range(sheet.ncols):
            content = sheet.cell_value(row,col)
            school.append(content)        #将单元格的内容追加到一维列表里面
        schools.append(school)         #将每行的内容追加到二维列表中
    return schools    #返回二维列表值
#(3)写入文件内容
def write_excel(schools):
    #(2)构造工作簿:Workbook
    wb = xlwt.Workbook(encoding = 'utf-8')
    #(3)为工作簿添加表单:Worksheet
    sheet = wb.add_sheet('上海市高校信息表')
    #(4)根据行列序号写入内容
    sheet.write_merge(0,0,0,6,'上海市高校信息表')   #合并第一行第一个单元格到第六个单元格设置写入表头
    
    for col in range(7):               #写入列表名称(列表字段)
        sheet.write(1,col,schools[0][col])
        
    row_num = 2
    for school in schools:
        if school[2]=='上海市':
            for col in range (7):
                sheet.write(row_num,col,school[col])
            row_num = row_num+1      #当写完一行之后单元格自加1行
    #(5)保存文件
    wb.save('../R&Q_pic/上海市高校信息表.xls')
            
#调用函数:
schools = read_excel('../R&Q_pic/上海市高校信息表.xls')
write_excel(schools)
#请在下面显示文件‘上海市高校信息表。xls’里面前10项内容(包括表头和列表名称共12行)
i=1
for s in schools :
    if i<12:
        print(s)
        i=i+1

运行结果:

 3.4、用pandas库读取excel文件
import pandas as pd   #导入第三方库pandas
 
data.head(10)         #显示读取文件前10行数据,为空是默认为5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值