07-模块与包-3

读写文件

模式

open():打开文件

模式

r 以读的方式打开文件,文件指针在文件的开始,这是系统默认的打开模式
w 以写的方式打开文件,若文件已存在,则覆盖原文件;否则创建新文件
a 以写的方式打开文件,若文件已存在,则指针在文件最后,向文件中追加内容;否则创建新文件并实现读写操作
b 以二进制模式打开文件,但不单独使用,配合r/w/a等模式使用
+ 同时实现读写操作,但不单独使用,配合r/w/a等模式使用
x 创建文件,但是如果文件已经存在,则无法创建
#导入os模块
>>> import os
#显示当前路径
>>> os.getcwd()
'/home/oldboy'
>>> f = open('raise.txt','w')
>>> f.write  
f.write(         f.write_through  f.writelines(    
>>> f.write("You raise me up")   
15
>>> f.close()#关闭文件
>>> os.getcwd()               
'/home/oldboy'
>>> os.listdir()
['.bash_logout', '.bashrc', '.bash_history', '.ssh', 'scripts', 'polysh', '.vimrc', '.bash_profile', 'tools', '.viminfo', 'raise.txt', '.python_history', '.rnd', 'pyscripts', '.cache', '.local', '.pki', '.pyenv', 'hostlist', 'iplist', 'perl5', 'myvenv']
>>> f = open('raise.txt')#以常规默认方式打开文件 
>>> f.read()#read是阅读文件内容
'You raise me up'
>>> with open('raise.txt','a') as f:
...     f.write("so I can stand on mountains,\nYou raise me up to walk on stormy")
... 
62
>>> f = open('raise.txt')
>>> f.read()
'You raise me upso I can stand on mountains,\nYou raise me up to walk on stormy'
#按行打印显示文件内容
>>> f = open('raise.txt')              
>>> for line in f:        
...     print(line,end='')
... 
You raise me upso I can stand on mountains,
You raise me up to walk on stormy>>> 
>>> f.seek(0)#将文件指针重置到文件开头
0
>>> f.read(3)#从文件指针开头读取3个字符
'You'
>>> f.readline()
' raise me upso I can stand on mountains,\n'
>>> f.readlines()#按行显示剩余的全部内容
['You raise me up to walk on stormy']
>>>

 

特定类型文件

word类型

  • pip3 install python-docx --user
[oldboy@node3 ~]$ pip3 install python-docx --user
>>> from docx import Document
>>> d = Document()
>>> d.add_paragraph('Life is short,You need Python.')#添加段落内容
<docx.text.paragraph.Paragraph object at 0x7f0d7f99ff50>
>>> d.save('python.docx')#保存文件
>>> os.listdir()
['.bash_logout', '.bashrc', '.bash_history', '.ssh', 'scripts', 'polysh', '.vimrc', '.bash_profile', 'tools', '.viminfo', 'raise.txt', '01a01.jpeg', '01A02.jpeg', '01A03.jpg', '02a01.jpeg', 'python.docx', '.python_history', '.rnd', 'pyscripts', '.cache', '.local', '.pki', '.pyenv', 'hostlist', 'iplist', 'perl5', 'myvenv']
>>> f = open('python.docx','rb')#以二进制只读方式打开文件
>>> doc = Document(f)
>>> doc
<docx.document.Document object at 0x7f0d7f9a4c80>#显示Document对象
>>> doc.paragraphs
[<docx.text.paragraph.Paragraph object at 0x7f0d7f99fc10>]#返回docx.text.paragraph对象段落属性,通过for循环显示内容
>>> for i in doc.paragraphs:
... print(i.text)
... 
Life is short,You need Python.

 

图片picture类型

#将图片上传到当前目录
[oldboy@node3 ~]$ ll
total 3340
-rw-r--r-- 1 oldboy oldboy 2560633 Aug 28  2019 01A02.jpeg
-rw-r--r-- 1 oldboy oldboy  204515 Sep 21  2019 01A03.jpg
-rw-r--r-- 1 oldboy oldboy  205400 Aug 28  2019 01a01.jpeg
-rw-r--r-- 1 oldboy oldboy   86028 Dec 21  2019 02a01.jpeg
-rw-r----- 1 oldboy oldboy    2163 Feb  7 17:21 hostlist
-rw-r----- 1 oldboy oldboy       0 Dec  8 11:23 iplist
drwxrwxr-x 4 oldboy oldboy      40 Jan 31 22:26 myvenv
drwxrwxr-x 2 oldboy oldboy       6 Nov 29 00:52 perl5
drwxr-x--- 5 oldboy oldboy      41 Dec 13  2019 polysh
drwxrwxr-x 2 oldboy oldboy    4096 Jan 31 21:07 pyscripts
-rw-rw-r-- 1 oldboy oldboy  327592 Feb 14 08:26 python.docx
-rw-rw-r-- 1 oldboy oldboy      77 Feb 13 22:20 raise.txt
drwxr-x--- 2 oldboy oldboy    4096 Nov 28 15:27 scripts
drwxr-x--- 8 oldboy root      4096 Nov 28 23:07 tools
>>> from docx import Document
>>> d = Document()
>>> d.add_paragraph('Life is short,You need Python.')
<docx.text.paragraph.Paragraph object at 0x7f0d7f9881d0>
>>> d.save('python.docx')
>>> for i in doc.paragraphs:
... print(i.text)
... 
Life is short,You need Python.
>>> d.add_picture('02a01.jpeg')#插入图片
<docx.shape.InlineShape object at 0x7f0d7f9ad350>
>>> d.save('python.docx')#保存文件,图片按原始大小插入,需自行调整

 

Excel类型

  • pip3 install openpyxl --user
[oldboy@node3 ~]$ pip3 install openpyxl --user
[oldboy@node3 ~]$ python3
Python 3.7.4 (default, Mar 29 2020, 02:42:02) 
[GCC 7.3.1 20180303 (Red Hat 7.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from openpyxl import Workbook#导入Workbook工作簿模块
#Excel包含三个部分:工作簿、工作表、单元格
>>> wb = Workbook()#创建工作簿
>>> ws = wb.active#打开工作表
>>> ws.title#获取工作表名称
'Sheet'
>>> ws.title = 'python'#工作表重命名为python
>>> wsl = wb.create_sheet('rust')#新建一个名为rust的工作表
>>> ws.title 
'python'
>>> wsl.title
'rust'
>>> wb.sheetnames#显示所有的工作表
['python', 'rust']
>>> ws['E1'] = 123#插入数据方式1:直接指定E列第一行数值为123
>>> ws.cell(row=2,column=2,value=111)#插入数据方式2:第二行第二列数值为111
<Cell 'python'.B2>
>>> wb.save('excel.xlsx')#保存文件

 

#且工作表为python,另一个工作表为rust

 

posted @ 2021-02-14 09:38  西瓜的春天  阅读(48)  评论(0)    收藏  举报