python之文件读写操作笔记
对不同类的文件操作,需要调用相关的库文件,一般情况下,可以选择建立:写文件函数和读文件函数。在写文件与读文件函数中
我们可以采用: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之文件读写操作笔记的更多相关文章
- python里文件读写操作
文件读写操作一种基本操作,但是里面也存在很多需要注意的问题,例如字符编码.内存缓冲.指针位置等等.如果忽视这些问题就会引起很多不必要的麻烦.简单来说,文件的读写分为几个过程: 打开文件,并定义操作文件 ...
- 【Python】文件读写操作
Python的文件读写有点类似php的文件读写.php的文件读写已经在<[php]让记事本成为你调控变量的控制台>(点击打开链接)说过了,以下用一个小样例说明Python的文件读写. 在F ...
- python的文件读写操作
文件读写 本文转自廖雪峰老师的教程https://www.liaoxuefeng.com/wiki/1016959663602400/1017607179232640 读写文件是最常见的IO操作.Py ...
- python进阶--文件读写操作
Python读写文件 1. open 使用open打开文件后一定要记得调用 文件对象的close()方法.比如可以用try --finally语句来确保最后能关闭文件. >>>f1 ...
- python之文件读写操作(r/r+/rb/w/w+/wb/a/a+/ab)的作用
'r':只读.该文件必须已存在. 'r+':可读可写.该文件必须已存在,写为追加在文件内容末尾. 'rb':表示以二进制方式读取文件.该文件必须已存在. 'w':只写.打开即默认创建一个新文件,如果文 ...
- QT文件读写操作笔记
补一下这部分的笔记 简单的东西也记一下 操作系统一般都会提供一些列的标准对话框,如文件选择.字体选择.颜色选择等,这些标准对话框为应用层序提供了一致的观感.Qt对这些标准对话框都定义了相关的类,如:Q ...
- python 文件读写操作(24)
以前的代码都是直接将数据输出到控制台,实际上我们也可以通过读/写文件的方式读取/输出到磁盘文件中,文件读写简称I/O操作.文件I/O操作一共分为四部分:打开(open)/读取(read)/写入(wri ...
- python(三)一个文件读写操作的小程序
我们要实现一个文件读写操作的小程序 首先我们有一个文件 我们要以"============"为界限,每一个角色分割成一个独立的txt文件,按照分割线走的话是分成 xiaoNa_1. ...
- Python之文件读写
本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input ...
随机推荐
- CentOS 7 安装MySQL8
安装 下载Linux对应的MySQL https://dev.mysql.com/downloads/mysql/ CentOS选择Red Hat Enterprise Linux 在/usr/loc ...
- 会话技术cookie与session
目录 会话技术cookie 会话技术 cookie 服务器怎样把Cookie写 给客户端 服务器如何获取客户端携带的cookie session session简介 Session如何办到在一个ser ...
- fdisk创立主分区过程
[root@localhost ~]# fdisk /dev/sdb …省略部分输出… Command (m for help): p #显示当前硬盘的分区列表 Disk /dev/sdb: 21.5 ...
- Laravel 中 Session 的使用问题(dd()导致laravel中session取值问题)
Laravel 中 Session 的使用问题(dd()导致laravel中session取值问题) 一.总结 一句话总结: Laravel 会首先收集需要写入 Session 的所有数据,并在用户的 ...
- Linux中强大的top命令
top命令算是最直观.好用的查看服务器负载的命令了.它实时动态刷新显示服务器状态信息,且可以通过交互式命令自定义显示内容,非常强大. 在终端中输入top,回车后会显示如下内容: top - 21: ...
- Android插件化(六): OpenAtlasの改写aapt以防止资源ID冲突
Android插件化(六): OpenAtlasの改写aapt以防止资源ID冲突 转 https://www.300168.com/yidong/show-2791.html 核心提示:引言And ...
- Gitlab分支保护
问题:使用Git时,会碰到需要对某个分支进行保护,避免其他人随意push. 这里以gitlab为例,具体操作如下: 1.进入项目 2.点击左侧列表中的Settings 3.点击Protected Br ...
- log4j.xml简单配置实现在控制台打印sql执行语句【加注释】
转: log4j.xml简单配置实现在控制台打印sql执行语句 2017年09月27日 13:02:34 艾然丶 阅读数 8804 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协 ...
- spring bean容器加载后执行初始化处理@PostConstruct
先说业务场景,我在系统启动后想要维护一个List常驻内存,因为我可能经常需要查询它,但它很少更新,而且数据量不大,明显符合缓存的特质,但我又不像引入第三方缓存.现在的问题是,该List的内容是从数据库 ...
- Qwidget::update
void QWidget::update ()分析重绘事件激活 1看看手册中这段话 void QWidget::update () [slot] Updates the widget unless u ...