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

浙公网安备 33010602011771号