版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、python(编程语言)中操作的文件类型
1.文本文件:文本式文件,如.txt、.bat、csv
2.二进制文件:MP3、excel、doc、...
二、python的文件操作
# (一)获取文件对象。
# 函数:open(文件路径,操作文件的模式)
# 返回值:得到一个文件对象
# 文件路径:绝对路径和相对路径
# 操作文件的模式:
#
# ######对于文件的读写设置(默认值是r)
# r #只读模式
# w #只写模式,覆盖写
# a #只写模式,追加写
#
# ########文件的格式设置(默认值是t)
# t #字符串的模式操作文件
# b #字节的形式操作文件
# ########升级扩展功能
# r+ #可读可写,但文件必须事先存在,以覆盖进行写
# w+ #可读可写,不要求文件事先存在,如果文件不存在就自行新创建,以覆盖写
# a+ #可读可写,不要求文件事先存在,如果文件不存在就自行新创建,以追加写
''''''
'''(一)获取文件对象'''
file =open(r"D:\PycharmProjects\untitled\Code_location\test.txt","rt")#以只读字符串模式操作
print(file)
'''(二)打开读取文件'''
#1、.read(size) #从文件读取指定的字节数,如果未给定或为负则读取所有。
#2、.readline() #返回文件的一行,默认保留原文本中的换行
#3、.readlines() #返回多行,读取的内容按照行转化为列表格式
print(file.read()) #file.read()读取文件的内容,无参数则全读
'''(三)关闭文件'''
file.close() #关闭文件
'''(四)with语句'''
#在python中,可以用with语句来对文件进行打开或者关闭
#with语句的特点:with后面操作的一定是一个资源文件,一定是实现了自动关闭功能。
#文件对象本身是资源文件,离开with语句之后,会自动关闭文件
# with open() as f1,open() as f2:
# with语句体的内容
with open(r"D:\PycharmProjects\untitled\Code_location\test.txt","rt") as f:
print(f.read())
'''*****(五)习惯上用for循环来对文本对象进行操作'''
#read()---将文本一次性读完,for循环一行一行的读
with open(r"D:\PycharmProjects\untitled\Code_location\test.txt","rt") as f:
for i in f: #\n换行符也会被单独算一行读出来
print(i)
'''(六)对于文件的写入'''
#(1)write #从文件的当前位置进行写入
#以r模式打开的文件,则指针在文件开头
#以w模式打开的文件,指针其实在末尾,但他会删除所有内容后,指针回到开始位置
#以a模式打开的文件,指针在最后一个位置的下一个位置,即追加
#write(content) content写入的内容
with open(r"D:\PycharmProjects\untitled\Code_location\test.txt","at") as f:
f.write("\nbbbb")
#f.writelines(列表) #列表中拥有的元素是每一行的内容
with open(r"D:\PycharmProjects\untitled\Code_location\test.txt","at") as f:
f.writelines(['a\n','b\n','d\n','c\n','f\n'])
'''(七)csv文件的写入''' #newline="" 表示删除默认的换行
import csv
with open(r"D:\PycharmProjects\untitled\Code_location\test1.csv","wt",newline="") as f:
writer = csv.writer(f) #先创建csv模式的读写器(csv的读写模式对象)。调用csv.writer(要写入的文件对象)
writer.writerow(["姓名", "年龄", "性别"]) #writer下的writerow进行写一行操作
writer.writerow(["Jalen", "27", "男"]) # writer下的writerow进行写一行操作
writer.writerow(["a黄黄", "27", "男"]) # writer下的writerow进行写一行操作
#一次写入多行
li = [["ddc",25,"女"],["dda",23,"女"],["ddb",24,"女"]]
writer.writerows(li)