在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
大家在使用Python的时候,如果知道一些小技巧,那么工作效率会有很大的提高。小编整理了关于文件读写的Python技巧,都是干货,希望能对大家有一点小小的帮助吧!
# python2 str unicode
# python3 bytes str
# python2
s = u'你好'
s.encode('utf8') #存储到文件中的格式
f = open('hello.txt', 'w')
f.write(s.encode('utf8'))
f.close()
f = open('hello.txt', 'r')
t = f.read().decode('utf8') # 你好
f.close()
# python3 字符串就是unicode
strb = b'asdfasdfsdg'
s = '你好'
f = open('hello2.txt', 'wt', encoding='utf8') # 自动完成编解码
f.write(s)
f.close()
f = open('hello2.txt', 'rt', encoding='utf8')
s = f.read()
f.close()
# 处理二进制文件 处理音频文件,将音量调小保存
f = open('demo.wav', 'rb')
info = f.read(44) #文件头
import struct
struct.unpack('h',info[22:24]) #处理文件头 数据运算
struct.unpack('i',infi[24:28])
f.seek(0,2)
f.tell()
n = (f.tell()-44) /2
import array
buf = array.array('h', (0 for _ in xrange(n)))
f.seek(44)
f.readinto(buf)
for i in xrange(n): buf[i] /= 8
f2 = open('demo2.wav', 'wb')
f2.write(info)
buf.tofile(f2)
f2.close()
# 使用临时文件
# 自动删除,不占内存
from tempfile import TemporaryFile, NamedTemporaryFile
f = TemporaryFile() # 系统文件系统找不到
f.write('abcddee'*100000)
f.seek(0)
f.read(100)
ntf = NamedTemporaryFile(delete=False) # 能找到文件,默认关闭以后会删除文件
fname = nft.name
# 设置文件的缓冲
# I/O 操作以块为单位,如4096字节一个块
f = open('test.txt', 'w', buffering=2048) # 全缓冲,要写满缓冲才会写到文件中
f = open('test.txt', 'w', buffering=1) # 行缓冲,\n就会写文件
f = open('test.txt', 'w', buffering=1) # 无缓冲,实时写
f.write('abc')
# 将文件映射到内存
import mmap
f = open('demo.bn','r+b')
f.fileno()
m = mmap.mmap(f.fileno(), 0, access=mmpa.ACCESS_WRITE, offset=mmap.PAGESIZE)
# 得到字节数组
m[4:8] = '\xff'*4 # 修改直接改变文件内容
# 读写csv数据
from urllib import urlretrieve
urlretrieve('http://table.finance.yahoo.com/table.csv?s=000001.sz', 'pingan.csv')
rf = open('pingan.csv', 'rb')
import csv
reader = csv.reader(rf)
header = reader.next()
wf = open('pingan_c.csv', 'wb')
writer = csv.writeer(wf)
writer.writerow(header)
rf.close()
wf.close()
# 读写json数据
import requests
import json
from record import Record
record = Record(channel=1)
audioData = record.record(2)
from secret import API_KEY, SECRET_KEY
authUrl = "https://openapi.baidu.com/oauth/2.0/token?grant_type=client_credentials&client_id=" + API_KEY + "&client_secret=" +
SECRET_KEY
response = requests.get(authUrl)
res = json.loads(response.content)
token = res['access_token']
#百度语音识别
cuid = 'xxxxxxxxxxxxx'
srvUrl = 'http://vop.baidu.com/server_api?cuid=' + cuid + '&token=' + token
heepHeader = {'Content-Type': 'audio/wav; rate = 8000'}
response = requests.post(srvUrl, headers=httpHeader, data=audioData)
res = json.loads(response.content)
text = res['result'][0]
print text
# json.dumps() python对象(列表、字典等)转换成json字符串
# json.dumps(data, sort_keys=True)
# json.loads() json字符串转换成python对象
with open('demo.json', 'wb') as f:
json.dump(l, f) # 将l数据写到文件
# 构建xml文档
from xml.etree.ElementTree import parse
with open('demo.xml') with f:
et = parse(f)
root = et.getroot()
root.tag
root.attrib
root.text
#root.getchildren()
for child in root:
print child.get('name')
root.find('country')
root.findall('country') # 直接子元素
for e in root.iterfind('country'):
print e.get('name')
from xml.etree.ElementTree import Element, ElementTree, tostring
e = Element('Data')
e.set('name', 'abc')
e2 = Element('Row')
e3 = Element('Open')
e3.text = '8.80'
e2.append(e3)
e.append(e2)
tostring(e)
et = ElementTree(e)
et.write('demo.xml')
# 读写excel文件
import xlrd, xlwt
book = xlrd.open_workbook('demo.xls')
book.sheets()
sheet = book.sheet_by_index(0)
rows = sheet.nrows
cols = sheet.ncols
cell = sheet.cell(0,0) #(0,0)单元格
cell.ctype
cell.value
row = sheet.row(1) #cell对象列表
data = sheet.row_values(1, 1) #第1列跳过第一格的值列表
sheet.put_cell(0, cols, xlrd.XL_CELL_TEXT, u'Total', None)
wbook = xlwt.Workbook()
wsheet = wbook.add_sheet('sheet1')
style = xlwt.easyxf('align: vertical center, horizontal center')
wsheet.write(rows,cols, sheet.cell_value(rows,cols), style)
wsheet.save('output.xls')
以上就是文件读写Python技巧的整理,觉得本篇文章有用的同学不妨分享出去,让更多人看见。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
《编程小白的第一本Python入门书》读书笔记
对于编程零基础初学者来讲,Python入门选择看什么样的书是很重要的。第一本Pthon入门书的内容要精简,不然新手学了很久,都还在死磕基础知识。书的难度也不能太高,不然缺乏基础的学习者会看不懂,从而失去学习兴趣。因此在这里,小编要向大家推荐,一本最适合零基础学习者的书——《编程小白的第一本Pthon入门书》。
6542
2019-08-23 18:26:39
为什么越来越多的人学Python?
为什么越来越多的人开始学习Python?在互联网技术以及市场的推动下,人工智能以及数据科学成为各大企业抢夺的未来市场,而Python编程语言在两个热门方向上有非常广泛的应用。越来越多的同学开始学习Python,不仅仅是因为市场趋势发展需要,同时与Python的语言特点、应用范围密切相关的。
4991
2019-11-28 18:23:52
Python基础知识有哪些?
Python基础知识有哪些?需要学习Python核心知识Python数据基本运算、语句、容器、函数、Python高级软件开发技术等。这几年人工智能、数据分析等各行业的兴起,让更多人知道了Python,让Python是又火了一把。Python作为一个简介又实用的编程语言,让许多想从事信息技术行业的人准备去学习它。
5041
2020-06-04 17:15:07
Python基础学完了再学什么?
基础阶段学完Python 基础语法、python 容器、函数和文件操作、面向对象、 python编程和web基础、Linux 操作系统多任务编程、Python 网络编程、静态 web 服务器、HTML、CSS、JavaScript、数据库 MySQL、正则表达式、Python 进阶、mini-web 框架后,需要在进行实操积累项目实战经验。
3926
2021-04-08 16:18:17
Jquery如何获取和设置元素内容?代码怎么写?
Jquery如何获取和设置元素内容?代码怎么写?jQuery 具有可操作 HTML 元素和属性的方法,其中jQuery 非常重要的部分就是操作DOM,获得- text()、html() 以及 val()内容。
3167
2022-01-05 09:32:48