Python-文件操作

print("===========================文件操作===============================")
#打开文件
#file:打开的文件 (路径)
#mode:打开模式,r 是只读
#encoding:打开文件时的编码方式

#open()函数会有一个返回值,打开文件对象

#在win操作系统,默认以utf-8编码模式打开
#解决方法,读取和读取要使用相同的编码方式
#方法1
#file = open("xxx.text",encoding="utf-8")

#绝对路劲
file = open("/Users/macos/Desktop/vsCode/Pfile/Pfile.rtf",encoding="UTF-8")
print(file.read())
file.close()     #操作完成要关闭文件


print("===========================文件路劲===============================")
#1.绝对路劲 :从电脑盘符开始   /Users/macos/Desktop/vsCode/Pfile/Pfile.rtf
#2.相对路劲 :当前文件所在的文件夹开始的路劲

import os
print(os.sep)   #win系统,文件夹之间用 \ 分割, mac,lunix 里用 / 分割
print(os.name)  # NT/posix

#绝对路劲 :从电脑盘符开始
file = open("/Users/macos/Desktop/vsCode/Pfile/Pfile.rtf",encoding="UTF-8")
print("1=-=-=-=-=-=-=-=-=")
print(file.read())
file.close()     #操作完成要关闭文件

#相对路劲 :当前文件所在的文件夹开始的路劲
file = open("Pfile/Pfile.rtf",encoding="UTF-8")
print("2=-=-=-=-=-=-=-=-=")

print(file.read())
file.close()     #操作完成要关闭文件


#读取方式
print("3=-=-=-=-=-=-=-=-=")
file  = open("Pfile/Pfile2.xml")
print(file.read())
file.close() 

print("4=-=-=-=-=-=-=-=-=")
file  = open("Pfile/Pfile3.html")
print(file.read())
file.close() 

#相对路劲
# ../表示返回上一级
# ./表示当前文件夹
# / 不能随便写


print("===========================文件打开方式===============================")
#mode:文件打开方式,默认使用rt
#r:只读, 不能写入
#w:只写, 不可读
#t:文本形式打开文件
#b:以二进制形式打开文件,可以操作非文本文件
#rb:以二进制读取
#wb:以二进制写入                                
#a:追加,在最后追加内容,文件不存在则创建文件,存在则追加
#rt以文本形式读取

#不推荐,出错
#r+:可读可写,文件不存在则报错
#w+:可读可写,文件不存在则创建,存在则覆盖

#只可读,不可写
file  = open("Pfile/Pfile3.html","r",encoding="UTF-8")
print(file.read())
file.close() 

#写入时,不存在的文件会自动创建,不可读
#写入时,存在的文件会被覆盖
file  = open("Pfile/Pfile4.html","w",encoding="utf8")
file.write("hello4444")
file.close() 

#wb:以二进制写入                                
file  = open("Pfile/Pfile5.txt","wb")
file.write("今天天气真好呀!!!!!!!!".encode("utf8"))
file.close() 

file  = open("Pfile/Pfile4.html","r") #默认读取方式 utf-8
print(file.read())
file.close() 


file  = open("Pfile/Pfile6.txt","w+")
file.write("哈哈哈哈哈哈")
file.seek(0,0)          #写入后,文件指针到最后,需要seek将指针重置到开头
print(file.read())
file.close() 

print("===========================文件读取方式===============================")
file  = open("Pfile/Pfile7.txt",encoding="utf8")#默认以rt形式读取文件

#print(file.read())#读所有的数据

#print(file.readline())#读一行,指针会移到到第二行

#content = file.readlines()#读取所有行数据,保存到一个数组,指针会移到到最后行
#print(content)

#rt形势下,长度:为字符数
#rb形势下,长度:为字节数
x = file.read(10)#指的是读取的长度
print(x)
file.close() 

print("===========================判断文件是否存在===============================")
import os
file = "Pfile/Pfile7.txt"
if os.path.isfile(file):
    print("文件存在,可以打开")
else:
    print("文件不存在")

#以点作为分隔符,分割名字跟后缀, rpartition 为从右往左切
aa ="ASKKD.txt"
aaa = aa.rpartition(".") #('ASKKD', '.', 'txt')
print(aaa)

#系统分割文件后缀名,推荐
bbb = os.path.splitext(aa) #('ASKKD', '.txt')
print(bbb)


print("===========================大文件拷贝===============================")
#二进制读写最方便
import os
filePath = "Pfile/Pfile7.txt"
if os.path.isfile(filePath):
    print("文件存在,可以打开")
    
    old_file = open(filePath,"rb")#以二进制形式打开
    bbb = os.path.splitext(filePath) 
    print(bbb)                    #('Pfile/Pfile7', '.txt')
    new_file = bbb[0] + ".bak" + bbb[1]
    print(new_file)               #Pfile/Pfile7.bak.txt
    new_file = open(new_file,"wb")#以二进制形式写入
    while True:
        content = old_file.read(1024)#每次读1024字节
        new_file.write(content)
        if not content:
            print(content)#b''
            break
    old_file.close()
    new_file.close()
else:
    print("文件不存在")


print("===========================CSV文件写===============================")
#以纯文本的形式存储表格数据:csv文件
import csv #系统内置模块

file = open("Pfile/Pfile10.csv","w",encoding="utf8",newline="")
w = csv.writer(file)
w.writerow(["name","age","score"]) #写1行数据
w.writerow(["张三","19","69"])  #写1行数据
w.writerow(["包子","29","100"]) #写1行数据

w.writerows([                   #写入多行数据
    ["张4","19","69"],
    ["张5","19","69"],
    ["张6","19","69"],
    ["张7","19","69"]
    ])


file.close()

print("===========================CSV文件读===============================")
file = open("Pfile/Pfile10.csv","r",encoding="utf8",newline="")
r = csv.reader(file)
for data in r:
    print(data)

你可能感兴趣的:(Python-文件操作)