python—常见文件读写

class MyFile:
    def __init__(self,filename="d:\\"):
        self.filename=filename
    def ReadTxt(self):
      with open(self.filename, 'r') as f:
        for s in f.readlines():
            print(s, end='')
#-----------------------写入txt文件-------
    def WriteTxt(self,dataset):
      with open(self.filename, 'w') as f:
#          f.writelines(dataset) 不能换行写
          for yy in dataset:
              f.write(str(yy)+"\t") #写入字符串\
      print("写入成功!")
#-----------------------二进制文件--------------
    def Readbinary(self):
      with open(self, 'rb') as f:
          b = f.read()
          print(b)
#-------------------------------------------------
    def Writebinary(self):    
      with open(self.filename, 'wb') as f:
          f.write(b'123')   #写入字节数据
          f.write(b'abc')   #写入字节数据
#-------------------文件定位seek使用方法------------------------------
    def ReadBlock(self,BlockSize=1024):
      import os
      with open(self.filename,'r')  as f:  #创建或打开文件data.
          while True:
              Block=f.read(BlockSize)
              if not Block:
                  break
              print(Block)
    def ReadLine(self,BlockSize=1024):
      import os
      with open(self.filename,'r')  as f:  #创建或打开文件data.
          while True:
              Line=f.readline()
              if not Line:
                  break
              print(Line)
#---------------------.gz文件读写方式(将现有文件data1.txt内容写入后压缩)---------------------------------
    def  gzipfile(self):
        import sys, gzip
        filenamezip = self.filename + '.gz'   #file extension .gz
        # gzip compression 
        with gzip.open(filenamezip, 'wt') as f:  
            for s in open(self.filename, 'r'):
                f.write(s)
                # gzip decompression
        for s in gzip.open(filenamezip, 'r'):
            print(s)
#---------------------读入csv文件(不带标题)---------
    def Readcsv(self):
        import csv
        with open(self.filename, newline='') as f:  #打开文件
            f_csv = csv.reader(f)    #创建csv.reader对象
            headers = next(f_csv)    #标题
            print(headers)           #打印标题(列表)
            for row in f_csv:        #循环打印各行(列表)
                print(row)
#-------------------------写入csv文件------------------------------------------------
    def Writecsv(self):
        import csv
        rows = [('学号', '姓名', '性别', '班级', '语文', '数学', '英语'),
                ('101511', '宋颐园', '男', '一班', '72', '85', '82'),
                ('101513', '王二丫', '女', '一班', '75', '82', '51')]
        with open(self.filename,'w', newline='') as f:  #打开文件
            f_csv = csv.writer(f)       #创建csv.writer对象
            f_csv.writerows(rows)     #写入多行(数据)
            print("写入成功!")
#-------------------读入所有txt文件-----------------------------------
    def ReadAllTypeFile(self,PathDirectory):
        import fileinput, glob
        txtfiles = glob.glob(PathDirectory)
        with fileinput.input(files=txtfiles) as f:
            for line in f:
                print(f.filename(), f.lineno(), line, end='')
MyWrite=MyFile()
MyWrite.filename="d:\\1.csv"
MyWrite.Writecsv()
MyWrite.filename="d:\\1.txt"
MyWrite.WriteTxt(["123","my name is Jack!","End"])


猜你喜欢

转载自blog.csdn.net/weixin_42039090/article/details/80552337