您的位置:

python操作文档(python教程文档)

本文目录一览:

开启数据分析的大门-数据收集:Python对文件的操作

简介

我是一名应届经济学毕业生,在学习Python语言的过程中,接触到了数据分析,机器学习和人工智能,并对此特别感兴趣,现在我把整个学习过程记录下来,希望和我有相同兴趣和爱好的朋友们一同成长,期盼着各位专家的指导。

环境介绍

在整个过程当中,将采用Python和Excel,采用Python,是因为Python提供了丰富的开发框架和工具库,使用Excel是因为Excel是使用非常广泛的办公软件,我在Excel里将复杂的算法简单化,使大家快速理解各种难以理解的算法。

在开始之前,我们已经准备好了Anaconda和Excel环境。在这里省略了这个过程。

数据获取将通过tushare开放平台,后面我会介绍和演示如何应用tushare平台。

数据分析流程简介

数据分析是由数据收集开始,收集的数据经过标准化处理和整理后,通过各种算法,进行数据分析,目的是为了总结过去的 历史 数据,在数据趋势上预测未来的走势,同时对现存的环境进行优化。

我们今天先从数据收集开始。

数据收集需要应用到Python对文件的读写操作。

下面这段代码以只读方式采用’UTF-8’编码方式打开当前目录下的text1.txt文件,并输出到屏幕上。操作完毕后,关闭文件。

小贴士:在从tushare平台获取数据时,每个用户会分配到一个key,我们可以把这个key封装到这个文件里。为的是数据安全和便利性。

Python对数据的处理主要是csv文件格式,Excel和数据库。今天我们主要针对csv文件进行操作。为的是尽快开始我们的数据分析之旅。后面在适当的时候,我来完成对Excel和数据库的操作。

Python 读取csv文件有很多种方法,我们这里采用PANDAS库,下面是读取csv文件代码:

下面这段代码先生成数据列表,然后写入csv文件。

好了,到现在为止,Python对数据收集的基础工作就算完成了,Python对文件操作有很多技巧,不是我们这一系列的重点,就不一一介绍了,有兴趣的伙伴可以查阅相关文档。

使用 Python 读写文件

有些数据是临时的,它们在应用程序运行时存储在内存中,然后丢弃。但是有些数据是持久的。它们存储在硬盘驱动器上供以后使用,而且它们通常是用户最关心的东西。对于程序员来说,编写代码读写文件是很常见的,但每种语言处理该任务的方式都不同。本文演示了如何使用 Python 处理文件数据。

在 Linux 上,你可能已经安装了 Python。如果没有,你可以通过发行版软件仓库安装它。例如,在 CentOS 或 RHEL 上:

在 macOS 上,你可以使用 MacPorts或Homebrew安装。在 Windows 上,你可以使用Chocolatey安装。

一旦安装了 Python,打开你最喜欢的文本编辑器,准备好写代码吧。

如果你需要向一个文件中写入数据,记住有三个步骤:

这与你在计算机上编码、编辑照片或执行其他操作时使用的步骤完全相同。首先,打开要编辑的文档,然后进行编辑,最后关闭文档。

在 Python 中,过程是这样的:

这个例子中,第一行以 写 模式打开了一个文件,然后用变量 f 表示,我使用了 f 是因为它在 Python 代码中很常见,使用其他任意有效变量名也能正常工作。

在打开文件时,有不同的模式:

第二行表示向文件中写入数据,本例写入的是纯文本,但你可以写入任意类型的数据。

最后一行关闭了文件。

对于快速的文件交互,常用有一种简短的方法可以写入数据。它不会使文件保持打开状态,所以你不必记得调用 close 函数。相反,它使用 with 语法:

如果你或你的用户需要通过应用程序需要向文件中写入一些数据,然后你需要使用它们,那么你就需要读取文件了。与写入类似,逻辑一样:

同样的,这个逻辑反映了你一开始使用计算机就已知的内容。阅读文档,你可以打开、阅读,然后关闭。在计算机术语中,“打开”文件意味着将其加载到内存中。

实际上,一个文本文件内容肯定不止一行。例如,你需要读取一个配置文件、 游戏 存档或乐队下一首歌曲的歌词,正如你打开一本实体书时,你不可能立刻读完整本书,代码也只能解析已经加载到内存中的文件。因此,你可能需要遍历文件的内容。

示例的第一行指明使用 读 模式打开一个文件,然后文件交由变量 f 表示,但就像你写数据一样,变量名是任意的。 f 并没有什么特殊的,它只是单词 “file” 的最简表示,所以 Python 程序员会经常使用它。

在第二行,我们使用了 line ,另一个任意变量名,用来表示 f 的每一行。这告诉 Python 逐行迭代文件的内容,并将每一行的内容打印到输出中(在本例中为终端或IDLE)。

就像写入一样,使用 with 语法是一种更简短的方法读取数据。即不需要调用 close 方法,方便地快速交互。

使用 Python 有很多方法向文件写入数据,包括用 JSON、YAML、TOML等不同的格式写入。还有一个非常好的内置方法用于创建和维护SQLite数据库,以及许多库来处理不同的文件格式,包括图像、音频和视频等。

via:

作者:Seth Kenlon选题:lujun9972译者:MjSeven校对:turbokernel

Python批量读取加密Word文档转存txt文本实现

# -*- coding:utf-8 -*-

from win32com import client as wc

import os

key = '文档密码'

def Translate(input, output):

# 转换

wordapp = wc.Dispatch('Word.Application')

try:

doc = wordapp.Documents.Open(input, False, False, False,key)

doc.SaveAs(FileName=output, FileFormat=4, Encoding="gb2312")

doc.Close()

print(input, "完成")

os.remove(input)

# 为了让python可以在后续操作中r方式读取txt和不产生乱码,参数为4

except:

print(input,"密码错误")

if __name__ == '__main__':

#docx文档物理路径

path = r"C:Usersdocx"

key = '文档密码'

j=0

for file in os.listdir(path):

if '.doc' in file:

name = file.split(".docx")[0]

#输入文档物理路径

input_file = r"C:Usersdocx"+""+file

#输出文档物理路径

output_file=r"C:Users xt"+""+name+".txt"

Translate(input_file, output_file)

j=j+1

print(j)

else:continue

python操作word文档,用win32com,如何用python中的变量来命名word文档的文件名

import sys, time, string, win32com.client, stat, os

class CWordAutomate:

    """封装word com 连接"""

    def __init__( self ):

        """创建到word的ole连接对象"""

        self.m_obWord         = win32com.client.Dispatch( "Word.Application" )

        self.m_obDoc          = self.m_obWord.Documents.Add( ) #创建文档

        self.m_obWord.Visible = 1

        self.m_Sel            = self.m_obWord.Selection # 获取选择对象

    def WriteLine( self, sTxt, sFont, lSize, bBold=0 ):

        """写一行到文档"""

        self.m_Sel.Font.Name = sFont

        self.m_Sel.Font.Bold = bBold

        self.m_Sel.Font.Size = lSize

        self.m_Sel.TypeText( Text=sTxt + "\n"  )

    def Save(self, sFilename):

        self.m_obDoc.SaveAs(sFilename)

    def Quit(self):

        self.m_obWord.Quit()

def file_test(file):

    """

    测试用户提供的文件,查看它是否存在并包含数据。

    如果输入文件不存在或是空的,则返回一个警告代码

    """

    if (0 == os.path.isfile(file) or (0 == os.stat(file)[stat.ST_SIZE])):

        return 1

    else:

        return 0

if __name__ == "__main__":

usage = "\n\n\tUsage:  msword.py  {inputfile}  {outputfile}\n"

#

# 测试传入数字的参数

#

if len(sys.argv) != 3:

print "\n\n\tmsword.py error: \n\n\tInsufficient arguments passed."

print usage

sys.exit(1)

# 测试源文件是否存在并包含数据

if file_test(sys.argv[1]) == 1 : 

print "\n\n\tmsword.py error: \n\n\tSource file not found or is empty."

print usage

sys.exit(1)

# 测试目标文件,避免意外导致崩溃

if file_test(sys.argv[2]) == 0 :

print "\n\n\tmsword.py error: \n\n\tTarget file already exists."

print usage

sys.exit(1)

sFileName  = sys.argv[1]

obFile     = file( sFileName, 'r+' )

sContent   = obFile.read()

obFile.close()

lstContent = sContent.splitlines()

# 写入数据

#

obWord = CWordAutomate()

for sLine in lstContent:

obWord.WriteLine( sLine, "Courier New", 10  )

sLastMsg = time.strftime( "document generated on %c", time.localtime()  )

obWord.WriteLine( sLastMsg, "Times New Roman", 14, 0 )

obWord.Save(sys.argv[2])

obWord.Quit()