团队建设网站介绍,小型网站开发用什么语言,会计培训班的费用是多少,wordpress中文优化版文章目录 一、文件的IO读写操作1.常用的文件读取标志符2.普通文件的读操作 二、csv文件的读写操作1.读取操作2.读取时候跳过某一行3.列表方式写入csv文件4.字典方式写入csv文件 三、excel的数据操作#xff08;非pandas模块#xff09;1.读取excel的某个sheet的某一行的某一列… 文章目录 一、文件的IO读写操作1.常用的文件读取标志符2.普通文件的读操作 二、csv文件的读写操作1.读取操作2.读取时候跳过某一行3.列表方式写入csv文件4.字典方式写入csv文件 三、excel的数据操作非pandas模块1.读取excel的某个sheet的某一行的某一列2.追加数据到新文件 一、文件的IO读写操作
1.常用的文件读取标志符
标识含义r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式r打开一个文件用于读写。文件指针将会放在文件的开头。w打开一个文件只用于写入。如果该文件已存在则打开文件并从开头开始编辑即原有内容会被删除。如果该文件不存在创建新文件w打开一个文件用于读写。如果该文件已存在则打开文件并从开头开始编辑即原有内容会被删除。如果该文件不存在创建新文件。a打开一个文件用于追加。如果该文件已存在文件指针将会放在文件的结尾。也就是说新的内容将会被写入到已有内容之后。如果该文件不存在创建新文件进行写入。a打开一个文件用于读写。如果该文件已存在文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在创建新文件用于读写。b可以在上述标识后边加b表示字节层面例如‘wb’可以借助requests模块下载请求图片到本地
举个例子
假设现在有个1.txt的文件 我们简单的读取一下 通常操作文件我们会使用这种方式可以不用关闭文件是Python的一种简洁方式 2.普通文件的读操作
关于读文件有3种方式这里说一下区别
方法作用read1.读取整个文件将文件内容放到一个字符串变量中。2.如果文件非常大尤其是大于内存时无法使用read()方法。3.read()直接读取字节到字符串中包括了换行符readline1.readline()方法每次读取一行返回的是一个字符串对象保持当前行的内存 2.比readlines慢得多 3.readline() 读取整行包括行结束符并作为字符串返回readlines一次性读取整个文件自动将文件内容分析成一个行的列表。
二、csv文件的读写操作
1.读取操作
有一个示例文件内容如下 读取文件
import csv # 使用csv模块file_path result.csv# 读取csv文件
with open(file_path, r) as f:reader csv.reader(f, delimiter,) # 默认的情况下, 读和写使用逗号做分隔符(delimiter)for row in reader:print(row)结果 2.读取时候跳过某一行
import csv
from itertools import islicewith open(2.csv, r) as f:reader csv.reader(f)for row in islice(reader, 1, None): # 跳过表头的第一行print(row)3.列表方式写入csv文件
这个是通过列表的方式进行写入如果有标题需要自己一一对应
import csvwith open(some.csv, w) as f:writer csv.writer(f)writer.writerow([1, 1, 1, 1])writer.writerow([2, 2, 2, 2 ])问题 发现每写完一行会加入一个空行 解决办法 Python3因此需要加入在open( )中增加一个参数newline’’ import csvwith open(some.csv, w,newline) as f:writer csv.writer(f)writer.writerow([1, 1, 1, 1])writer.writerow([2, 2, 2, 2 ])Python2可以把w或者a改成字节存储可以避免这个问题这里我封装了一下python2的写入
def write_to_csv(file_path, row, fileheaders):with open(file_path, ab) as f:f.write(codecs.BOM_UTF8)writer csv.writer(f)if not os.path.getsize(file_path):writer.writerow(fileheaders)writer.writerow(row)print(row)4.字典方式写入csv文件
import csvdata [{name: 张三, age: 15, sex: 男},{name: 李四, age: 12, sex: 男},{name: 彪子, age: 1, sex: 女},
]keys data[0].keys() # 这里每行key相同我随便取一行做表头with open(result.csv, w, newline, encodingutf-8) as f:writer csv.DictWriter(f, fieldnameskeys)writer.writeheader()# writer.writerows(data) # 按顺序写全部writer.writerow(data[0]) # 只写一条 三、excel的数据操作非pandas模块
原文件
1.读取excel的某个sheet的某一行的某一列
import xlrdfile demo.xlsx
sheet_nameSheet1work xlrd.open_workbook(file)
work_sheet work.sheet_by_name(sheet_name)print(work_sheet.cell_value(2, 0)) # 读取第3行的第1列2.追加数据到新文件
# coding: utf-8 import xlrd
from xlutils.copy import copyfile demo.xlsx
sheet_name Sheet1work xlrd.open_workbook(file)
work_sheet work.sheet_by_name(sheet_name)# 对数据表格进行复制
new_file copy(work)
ws new_file.get_sheet(0)# 往新表格写数据
ws.write(4, 0, 4)
ws.write(4, 1, Danny)# 保存
new_file_name new_demo.xlsx
new_file.save(new_file_name)