对不同类的文件操作,需要调用相关的库文件,一般情况下,可以选择建立:写文件函数和读文件函数。在写文件与读文件函数中

我们可以采用:with  open('文件名','w', encoding='utf8') as f:  上下文管理方式来操作文件。
其中‘w’为打开文件模式,也可以是‘r’,还可以是‘a’

r  以只读方式打开文件。文件的指针将回放在文件的开头,这是默认模式

w 打开一个文件只用于写入。如果该文件已存在则覆盖,如果不存在,就创建新文件

a 打开一个文件用于追加。如果该文件已存在,就从结尾追加。如果没有就新建文件

接下来就是简单的代码演练了。

 def txt_writer():
"""写文件"""
with open('data.txt', 'w', encoding='utf8') as f:
f.write('优品课堂\n')
lines = [
'地址:北京市\n',
'QQ:95001678\n',
'网址:http://uke.cc'
]
f.writelines(lines) def txt_read():
"""读文件"""
# open中省略'r',也可以
with open('data.txt', encoding='utf8') as f:
# 两种方式读取文件
# for line in f:
# print(line, end='')
reader = f.readlines() # 这个与f.writelines对应
print(reader) if __name__ == '__main__':
txt_read()
 import json  # 调用json库不可少

 def json_basic():
data = {
"ID": 1,
"课程": "Python精讲",
"机构": "优品课堂",
"单价": 98.00,
"网址": "http://codr.cn"
}
print('原始数据')
print(data)
print('_ ' * 20)
json_str = json.dumps(data)
print(json_str)
print('_ ' * 20)
json_data = json.loads(json_str)
print(json_data) def json_write_file():
"""写json文档"""
data = {
"ID": 1,
"课程": "Python精讲",
"机构": "优品课堂",
"单价": 98.00,
"网址": "http://codr.cn"
}
with open('data.json', 'w', encoding='utf8') as f:
json.dump(data, f) # 向文件存储数据 def json_read_file():
"""读取json文件"""
with open('data.json', 'r', encoding='utf8') as f:
data = json.load(f) # 加载文件中的数据
print(data) def json_type_diff():
"""类型差异"""
# print(json.dumps(False))
data = {
'Discontinued': False, # 在json下False为false
'Tilte': 'iphone7s',
'category': None, # 在json下None为none
'Price': 5999.00
}
print(json.dumps(data))
# {"Discontinued": false, "Tilte": "iphone7s", "category": null, "Price": 5999.0} if __name__ == '__main__':
# json_basic()
# json_write_file()
# json_read_file()
json_type_diff()
 import xlrd

 def xl_read():
"""excel读取"""
book = xlrd.open_workbook('product.xlsx')
for sheet in book.sheets(): # 读取Excel表里的工作簿在表的下方sheet里
print(sheet.name) # 这里sheet的别名不能出现空格 def xl_read_data():
"""读取数据"""
# 用xlrd.open_workbook('文件名.xlxs')方式打开Excel文件
book = xlrd.open_workbook('product.xlsx')
sheet = book.sheet_by_name("product")
print('工作簿:{}'.format(sheet.name))
print('数据行数:{}'.format(sheet.nrows))
print("产品数据")
print("=" * 50)
for i in range(sheet.nrows):
print(sheet.row_values(i)) # 获取索引指定的数据行 if __name__ == '__main__':
# xl_read()
xl_read_data()
 import csv  # 调用csv库是不可少的
"""先运行csv_write部分即写入csv文件""" """这是csv文件的基本操作""" def csv_reader():
"""读取csv""" with open('my_course2.csv', encoding='utf8') as f:
reader = csv.reader(f) # 以列表的方式读取赋值给reader
# reader = csv.DictReader(f) # 以顺序字典表的方式读取赋值给reader
headers = next(reader) # 用next迭代方式打印
print(headers)
for row in reader:
print(row) def csv_write():
"""写入csv文件"""
""""先创建写的内容"""
headers = ["编号", "课程", "讲师"]
# 不能忘记每一行后面的“,”
rows = [
(1, "Python", "Eason"),
(2, "c#", "Eason"),
(3, "Django", "Eason"),
(4, ".NET", "Eason")
]
"""newline=''是为了写入文件的每一行不要有空行"""
with open('my_course.csv', 'w', encoding='utf8', newline='') as f:
writer = csv.writer(f)
writer.writerow(headers) # 写入标头
writer.writerows(rows) # 写入标头以下行writerows比上一行多个s def csv_writer_dict():
"""以dict形式写入csv"""
""""先创建写的内容"""
headers = ["ID", "Title", "org", "Url"]
# 不能忘记每一行后面的“,”
rows = [
{'ID': 1, 'Title': 'Python', 'org': 'youpinketang', 'Url': 'http://uke.cc'},
{'ID': 2, 'Title': 'Python', 'org': 'youpinketang', 'Url': 'http://uke.cc'},
{'ID': 3, 'Title': 'Python', 'org': 'youpinketang', 'Url': 'http://uke.cc'},
{'ID': 4, 'Title': 'Python', 'org': 'youpinketang', 'Url': 'http://uke.cc'},
dict(ID=5, Title='C#', org='youpinketang', Url='http://codr.cn'),
dict(ID=6, Title='C#', org='youpinketang', Url='http://codr.cn')
]
"""通过with... as ...形式方便程序进程管理"""
with open('my_course2.csv', 'w', encoding='utf8', newline='') as f:
writer = csv.DictWriter(f, headers) # 以字典表的形式写入文件
writer.writeheader() # 写入第一行标头
writer.writerows(rows) # 写入标头行以下行 if __name__ == '__main__':
# csv_write()
csv_reader()
# csv_writer_dict()

python之文件读写操作笔记的更多相关文章

  1. python里文件读写操作

    文件读写操作一种基本操作,但是里面也存在很多需要注意的问题,例如字符编码.内存缓冲.指针位置等等.如果忽视这些问题就会引起很多不必要的麻烦.简单来说,文件的读写分为几个过程: 打开文件,并定义操作文件 ...

  2. 【Python】文件读写操作

    Python的文件读写有点类似php的文件读写.php的文件读写已经在<[php]让记事本成为你调控变量的控制台>(点击打开链接)说过了,以下用一个小样例说明Python的文件读写. 在F ...

  3. python的文件读写操作

    文件读写 本文转自廖雪峰老师的教程https://www.liaoxuefeng.com/wiki/1016959663602400/1017607179232640 读写文件是最常见的IO操作.Py ...

  4. python进阶--文件读写操作

    Python读写文件 1. open 使用open打开文件后一定要记得调用 文件对象的close()方法.比如可以用try --finally语句来确保最后能关闭文件. >>>f1 ...

  5. python之文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)的作用

    'r':只读.该文件必须已存在. 'r+':可读可写.该文件必须已存在,写为追加在文件内容末尾. 'rb':表示以二进制方式读取文件.该文件必须已存在. 'w':只写.打开即默认创建一个新文件,如果文 ...

  6. QT文件读写操作笔记

    补一下这部分的笔记 简单的东西也记一下 操作系统一般都会提供一些列的标准对话框,如文件选择.字体选择.颜色选择等,这些标准对话框为应用层序提供了一致的观感.Qt对这些标准对话框都定义了相关的类,如:Q ...

  7. python 文件读写操作(24)

    以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...

  8. python(三)一个文件读写操作的小程序

    我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...

  9. Python之文件读写

    本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...

随机推荐

  1. mybatis xml中是sql语句报错: Error creating document instance. Cause: org.xml.sax.SAXParseException: The

    最近项目折腾了老半天,找了资料才知道是这么回事... 因为语句中有一个小于号“<”,在XML中,会被当成一个页面元素来解析,不会处理为mysql的SQL语句的组成部分,修改如下: 1.在xml的 ...

  2. ajax默认是异步的

    jquery中的ajax 默认情况下为异步请求,即 async:true,可以通过设置参数 asycn:false 到使其同步 $.ajax({ url: 'www.test.com/test/tes ...

  3. LeetCode 第 152 场周赛

    一.质数排列(LeetCode-1175) 1.1 题目描述 1.2 解题思路 先统计出1-n中有多少个质数,得到质数个数\(x\),剩下的数\(y = n - x\): 使用排列组合公式得出结果 \ ...

  4. Qt之模型/视图(实时更新数据)

    上两节简单介绍了Qt中对于模型/视图的编程,大部分助手里说的很清楚了,现在就开始实战部分吧! 在实际应用中,视图展示的数据往往并非一成不变的,那么如何实时更新成了一个很重要的问题!功能:(1)添加委托 ...

  5. (三)OpenCV-Python学习—图像平滑

    由于种种原因,图像中难免会存在噪声,需要对其去除.噪声可以理解为灰度值的随机变化,即拍照过程中引入的一些不想要的像素点.噪声可分为椒盐噪声,高斯噪声,加性噪声和乘性噪声等,参见:https://zhu ...

  6. IIS7下搭建PHP(FastCgiModule)

    windows2008和windows vista都可以安装IIS7 第一步: 下载软件, php官方网站:www.php.net(下载winfows版本) phpmyadmin官方网站:www.ph ...

  7. OpenGL ES: (1) OpenGL ES的由来 (转)

    1. 电脑是做什么用的? 电脑又被称为计算机,那么最重要的工作就是计算.看过三体的同学都知道, 电脑中有无数纳米级别的计算单元,通过 0 和 1 的转换,完成加减乘除的操作. 2. 是什么使电脑工作? ...

  8. keras输出预测值和真实值

    在使用keras搭建神经网络时,有时需要查看一下预测值和真是值的具体数值,然后可以进行一些其他的操作.这几天查阅了很多资料.好像没办法直接access到训练时的数据.所以我们可以通过回调函数,传入新的 ...

  9. Java同步数据结构之ConcurrentHashMap

    前言 这是Java并发包最后一个集合框架的数据结构,其复杂程度也较以往任何数据结构复杂的多,顾名思义ConcurrentHashMap是线程安全版本的HashMap,总所周知HashMap是非线程安全 ...

  10. oracle库两个表关联查询时用 count 报错【我】

    oracle数据库,需要对两个表进行关联查询(根据两个字段),结果发现关联后不能改为 count 获取数量,报错如下: 同样的sql换到另外一个数据库就可以(只是因为数据量在千万级,所以很慢,用时40 ...