f=file("xxx")
buf = mmap(f.fileno(), 0, MAP_PRIVATE)
buf.find('\x00')
open(filename[,mode,encoding="编码"]) :第一个参数文件名如果不加路径,默认在该py文件目录下(路径举例: E:/XXX或E:\\xxx ),第二个是模式,默认为 'r' ——只读,举例: f = open('E:/abc.txt') ,如果要转编码并写入模式:
f = open('E:/abc.txt','w',encoding='utf-8')
1. 模式
2. 方法
(1) close() : 关闭文件,因为文件写入时是写在内存,只有关闭时才写入硬盘,所以写完记得关闭
(2) read(size = -1) :读取文件size个字符,不写默认是-1,此时读取所有内容(换行按\n来表示,很不好看),并作为字符串返回,一定要注意 读完以后文件指针将会指向末尾 ,所以下一次在用read方法时会发现读取不出内容了,所以这个就要用seek移动指针或者关闭文件重新定义
(3) tell() :返回当前文件指针指向的位置
(4) seek(offset,from) :移动文件指针,代表从from参数开始偏移offset个字节,0代表起始位置,1代表当前位置,2代表文件末尾
(5) readline() :按序列读取一行内容,默认\n为边界
(6) write() :写入内容,但必须要有写入权限才行,否则报错,写完会返回写入的长度,例如: len1 = f.write('abc') ,此时len1就为3
(7) truncate() :删除内容,把当前指针以后的内容全删了,举例:
注:
1.文件还可以转化为 list 之类的,例如: list1 = list(f) ,此时文件内容的按\n被隔开,然后可以用for语句读取文件所有内容,举例:
2.上面输出文件内容方法相对低效,所以一般都直接用for输出整个文件,举例:
通过 fileno 函数,我们可以查看一个文件对应的文件描述符,对应的是程序中打开的文件序号,举例:
可以看出python在启动时会先启动标准流的文件(文件描述符分别为:0/1/2),所以之后打开的文件就从3开始递增,当释放一个文件资源时,该描述符序号被释放,之后打开的文件可以继续使用该序号的文件描述符
python中的 print 的本质是通过 sys.stdout 来进行内容输出,而 sys.stdout 的本质是一个"文件",相当于我们所有的输入输出的本质都是在对 sys.stdin / sys.stdout / sys.stderr 这些文件来进行读写 *** 作,举例:
open 函数不仅可以打开本地文件,也可以打开文件描述符,而该参数默认为 True ,代表 close 后会将对应的文件资源释放,而对于一些文件描述符,我们只是希望 close 时将打开文件描述符的对象释放,而不释放对应的文件资源,那么则可以设置 closefd=False ,举例:
需要使用到 chardet 模块,按二进制可读打开文件,然后通过 detect() 方法查看,举例:
所以就可以根据文件来设置编码了:
有时候使用文件的编码解码也可能会出现无法解析的情况,例如两种编码混在同一个文件里的时候,此时可以设置 errors 参数为 ignore 来避免该问题,示例:
可用 os 模块下的 chmod() 函数,具体参考: http://www.runoob.com/python/os-chmod.html
使用 os 模块下的 remove() 函数可以实现删除文件,举例:
可以使用自带的 zipfile 模块来进行 *** 作,举例:
可以使用自带的 tarfile 模块来进行 *** 作,举例:
https://www.cnblogs.com/lotusto/p/5805543.html
背景:工作中需要将文件夹下的若干word文�».docx转æ¢ä¸ºå¯¹åºtxtææ¬æ ¼å¼
å æ¤éè¦å°docxä¸ææ¬è¯»ååºæ¥ï¼ç¶åä¿å为txtæ ¼å¼å³å¯
éè¦çpython模å为 python-docx ï¼ https://python-docx.readthedocs.io/en/latest/index.html, å¯¼å ¥æ¨¡åæ¶åå¯¼å ¥docx
ï¼åªè½è¯»å.docxæ件ï¼ä¸è½è¯»å.docæ件ï¼
注æï¼å¨PyPiéè¿æä¸ä¸ªå«docxçåºï¼å·²ç»åæ¢æ´æ°ï¼ä¸å»ºè®®ä½¿ç¨ï¼
http://www.cnblogs.com/geek-arking/p/9300617.html
ä¸é¢çæ¹æ³åªè½è¯»ådocxæ件ï¼å¦æ读ådocä¼æ¥é
ç»ææ¥éï¼docx.opc.exceptions.PackageNotFoundError: Package not foundãè¿æ¯æ æ³è¯å«doc
âæ¹åæå±å并没ææ¹åå ¶ç¼ç æ¹å¼ï¼å æ¤æ æ³è¯»åææ¬å 容ï¼éå°docæ件ç¨wordå¦å为docxååç¨python-docx读åå ¶å 容â
对äºè¦è½¬æ¢çdocæ件ï¼ç½ä¸çèµæé½æ¯ä½¿ç¨win32ï¼éè¦å®è£ pypiwin32
https://www.cnblogs.com/AlgorithmDot/p/3386918.html
éè¿ä¸é¢çæ¹æ³ï¼ææ¶å¯ä»¥ç´æ¥å°doc转æ¢ä¸ºtxtæ件ï¼ææ¶åä¼æ¥éã
è¿éæ们å¯ä»¥èèå°docæ件ç´æ¥è½¬æ¢ä¸ºdocxç¶ååéè¿ä¸é¢çæ¹æ³è¯»å为txtï¼å¦ææå¨å°docä¿®æ¹ä¸ºtxtæè docxï¼æå¼æ件ä¼æ¾ç¤ºä¹±ç ï¼ä½æ¯å¯ä»¥ç¨å ¶æä¾çSaveAsæ¹æ³å°.docææ¡£å©ç¨æå¨çæ¹å¼âå¦å为â.docxææ¡£ï¼å°±è½å¤æåæå¼è½¬ååç.docxææ¡£ï¼
doc.SaveAs(tmp +'.docx', 16)
å ¶ä¸16çå«ä¹å¦ä¸ï¼
å©ç¨win32comæ¥å£ç´æ¥è°ç¨office APIï¼å¥½å¤æ¯ç®åãå ¼å®¹æ§å¥½ï¼åªè¦officeè½å¤ççï¼pythoné½å¯ä»¥å¤çï¼å¤çåºæ¥çç»æåoffice wordéé¢âå¦å为âä¸è´ã
ä¸é¢æ¯office 2007æ¯æçå ¨é¨æä»¶æ ¼å¼å¯¹åºè¡¨ï¼
wdFormatDocument = 0
wdFormatDocument97 = 0
wdFormatDocumentDefault = 16
wdFormatDOSText = 4
wdFormatDOSTextLineBreaks = 5
wdFormatEncodedText = 7
wdFormatFilteredHTML = 10
wdFormatFlatXML = 19
wdFormatFlatXMLMacroEnabled = 20
wdFormatFlatXMLTemplate = 21
wdFormatFlatXMLTemplateMacroEnabled = 22
wdFormatHTML = 8
wdFormatPDF = 17
wdFormatRTF = 6
wdFormatTemplate = 1
wdFormatTemplate97 = 1
wdFormatText = 2
wdFormatTextLineBreaks = 3
wdFormatUnicodeText = 7
wdFormatWebArchive = 9
wdFormatXML = 11
wdFormatXMLDocument = 12
wdFormatXMLDocumentMacroEnabled = 13
wdFormatXMLTemplate = 14
wdFormatXMLTemplateMacroEnabled = 15
wdFormatXPS = 18
ç §çåé¢ææåºè¯¥è½å¯¹åºå°ç¸åºçæä»¶æ ¼å¼ã
1ãæ°å»ºææå¼æ件ãè¿ä¸ªæ¯è¾ç®åç¨docxçDocumentç±»ï¼è¥æå®è·¯å¾åæ¯æå¼ææ¡£ï¼è¥æ²¡ææå®è·¯å¾åæ¯æ°å»ºææ¡£
2ãä¿åæ件ãææå¼ï¼å°±æä¿åãç¨Documentç±»çsaveæ¹æ³ï¼å ¶ä¸åæ°æ¯ä¿åçæ件路å¾ï¼æè è¦ä¿åçæ件æµãä¸è¬æå®è·¯å¾å³å¯ã
doc.save(path_or_stream)
3ã对象éåãpython-docxå å«äºwordææ¡£çç¸å ³å¯¹è±¡éåã
4ãæå ¥æ®µè½ã段è½æ¯wordæåºæ¬ç对象ä¹ä¸ã
5ãæ°å¢æ ·å¼ãè¿ä¸ªå¸®å©ææ¡£éé¢è¯´å¾ä¸ä»ç»ï¼èä¸è¿æ¯è±æçãææ头ä¸ç项ç®ç¨å°è¿ä¸ªï¼å°±èªå·±ç¢ç£¨åºæä¹ä½¿ç¨ï¼å¦ä¸ã
6ãåºç¨åç¬¦æ ·å¼ãå符èªç¶æ¯å¨æ®µè½éé¢çï¼å¯ä»¥éç¨ä¸é¢æ¹æ³ç»æ®µè½è¿½å æåå设置åç¬¦æ ·å¼ã
#æå ¥ä¸ä¸ªç©ºç½æ®µè½
p = doc.add_paragraph('')
p.add_run('123', style="Heading 1 Char")
p.add_run('456')
p.add_run('789', style="Heading 2 Char")
#è¿æ ·ä¸ä¸ªæ®µè½å°±åºç¨äºä¸¤ä¸ªåç¬¦æ ·å¼ï¼ä¸é´â456â就没åºç¨æ ·å¼
printp.text#è¾åºç»ææ¯u'123456789' ä¹è¿æ¯è¿ç»ç
7ã设置åä½ãå½ç¶å¯ä»¥ä¸ç¨éè¿è®¾ç½®æ ·å¼å¯¹æäºåè¿è¡è®¾ç½®ï¼ä¹å¯ä»¥ç´æ¥è®¾ç½®ã
p = doc.add_paragraph('')
r = p.add_run('123')
r.font.bold =True#å ç²
r.font.italic =True#å¾æ çç...
8ãè¡¨æ ¼æä½ãè¡¨æ ¼ä¹æ¯ç»å¸¸ç¨å°çä¸ç§å¯¹è±¡ç±»åã
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)