1.读csv文件

#读取csv文件,以行为单位,返回一个列表
def csvloader(fileName):
    datalist=[]
    encoding='gbk'
    data=[]
    try:
        with open(fileName, newline='', encoding=encoding) as csvfile:
            rows = csv.reader(csvfile)
            data+=rows
    except:
        with open(fileName, newline='', encoding='utf-8') as csvfile:
            rows = csv.reader(csvfile)
            data+=rows
    for row in data:
        datalist.append(row)
    return datalist

2.存csv文件

#向csv文件中存数据,data是list
def saveCsv(csvName,data):
    try:
        f = open(csvName, 'a', encoding='GB2312', newline='' "")
        csv_writer = csv.writer(f)
        for i in data:
            csv_writer.writerow(i)  # 写入文件
        return "Success"
    except:
        return "False"

encoding是设置存储格式,如果你用excel打开,就用GB2312,用编译器打开就需要看你自己的设置了,但是也编译器也可以设置GB2312打开方式。如果你需要将数据储存到数据库,那么你需要读csv,然后转数据格式为"utf-8",然后存入数据库

‘a’表示追加,‘w’表示覆盖写,newline=' ' " " ,是解决每次写后出现的空行问题。

3、txt文件读取

'''
# 对于以空格、制表符、回车来做分隔符的数据,返回的是一个整体数据的列表,一个以行为单位的列表
# label = 1 ,表示返回一个整体列表 [....]
# label = 0 ,表示以每行为单位,返回一个列表 [[...],[...],...,[...]]
# 下面看似代码冗余,实际是为了减少if操作次数,在文件相当大的时候,每循环一次就要一次比较操作。
'''
def filetool1(fileName,label):
    fr = open(fileName,'r',encoding='utf-8')
    # 读出文件所有内容
    arrayLines = fr.readlines()
    # 针对有BOM的UTF-8文本,应该去掉BOM,否则后面会引发错误。
    arrayLines[0] = arrayLines[0].lstrip('\ufeff')
    list=[]
    if label==1:
        for line in arrayLines:
            # s.strip(rm),当rm空时,默认删除空白符(包括'\n','\r','\t',' ')
            line = line.strip()
            # 使用s.split(str="",num=string,cout(str))将字符串根据'\t'分隔符进行切片。
            line = line.split('\t')  # line = [xxx,xxx,xxx,xxx] 列表
            list += line
    else:
        for line in arrayLines:
            # s.strip(rm),当rm空时,默认删除空白符(包括'\n','\r','\t',' ')
            line = line.strip()
            # 使用s.split(str="",num=string,cout(str))将字符串根据'\t'分隔符进行切片。
            line = line.split('\t')
            list.append(line)
    return list

4、文件夹下多txt文件读取

'''
# 处理文件夹中的数据,返回的是以文件夹下一个整体文件数据的列表
# return 文件夹下文件名的list,文件的数据list [[文件1的数据],[文件2的数据],[文件3的数据],...]
'''
def filetool2(flooderName):
    fileNames = listdir(flooderName)
    dataList=[]
    for file in fileNames:
        li=[]
        # 打开文件
        fr = open(flooderName+'/%s' % (file))
        lines=fr.readlines()
        for line in lines:
            line=line.strip()  # 去回车符
            li.append(line)
        dataList.append(li)
    return fileNames,dataList

5、docx文档处理

import docx
from docx.oxml.ns import qn
path = "try.docx"
# 读取文本
file = docx.Document(path)
# 定义文本存储列表
s =[]
for p in file.paragraphs:
    s.append(p.text)
# 文本列表排序
s.sort()
# 新定义一个docx文档
doc = docx.Document()
# 设置字体格式
microsoft_font = u'宋体'  # u 表示后面的字符串以 Unicode 格式进行编码
paragrap = doc.add_paragraph("")
paragrap.add_run("")
# 将单词添加进文档
for word in s:
    paragrap.add_run(word+"\n")
# 存储文档
doc.save("test.docx")

6、获取当前路径的上一级路径

os.path.split(file)[0]

7、获取当前路径最后的文件夹名字或文件名

os.path.split(file)[-1]

8、 递归获取文件夹中所有非文件夹内容,比如多重文件夹下面的图片、文档等。

def search_detect_files(path, all_files):
    # 显示当前目录所有文件和子文件夹,放入file_list数组里
    file_list = os.listdir(path)
    # 循环判断每个file_list里的元素是文件夹还是文件,是文件的话,把名称传入list,是文件夹的话,递归
    for file in file_list:
        # 利用os.path.join()方法取得路径全名,并存入cur_path变量
        cur_path = os.path.join(path, file)
        # 判断是否是文件夹
        if os.path.isdir(cur_path):
            # 递归
            search_detect_files(cur_path, all_files)
        else:
            # 将文件夹路径和文件夹中file添加进all_files里
            all_files.append([path,file])
    return all_files

9、创建文件夹

def mkdir(path):
    folder = os.path.exists(path)
    if not folder:  # 判断是否存在文件夹如果不存在则创建为文件夹
        os.makedirs(path)  # makedirs 创建文件时如果路径不存在会创建这个路径

10、excel读取操作

import openpyxl
import os

# 获取excel对象
new_filename = 'test.xlsx'
wb = ''
# 如果当前文件不存在就创建一个新的文件
if os.path.exists(new_filename):
    try:
        wb = openpyxl.load_workbook(new_filename)
    except IOError as err:
        print(err)
else:
    wb= openpyxl.Workbook()
# 获得sheet对象
sheet = wb['test']
# 获得excel的行数和列数
print(sheet.max_row, sheet.max_column)
# 存储excel中的数据
data = [] 
# 循环
for rows in range(1, sheet.max_row + 1):
    temp_list = []
    for cols in range(1, sheet.max_column + 1):
        # 获取坐标为(rows,cols)的数据
        temp_list.append(sheet.cell(rows, cols).value)
    data.append(temp_list)
print(data)
# 关闭文件
wb.close()

11、写入excel

import openpyxl
# openpyxl,xlrd
import os

new_filename = 'test.xlsx'
wb = ''
if os.path.exists(new_filename):
    try:
        # 获取excel对象
        wb = openpyxl.load_workbook(new_filename)
    except IOError as err:
        print(err)
else:
    wb= openpyxl.Workbook()


# 准备写入文件的数据
data=[[1,2,3],[4,5,6]]
# 创建一个新的表格
ws1 = wb.create_sheet("Mysheet1") # 在末尾插入(默认)

for i in range(len(data)):
    for j in range(len(data[0])):
        ws1.cell(i+1,j,one[i][j-1])

# 保存写入的数据
wb.save('test.xlsx')
wb.close()