美文网首页
Win10自动化操作-Automagica

Win10自动化操作-Automagica

作者: TianNanLeo | 来源:发表于2019-08-04 15:35 被阅读0次

    Automagica 是一个开源智能机器人流程自动化(SRPA,Smart Robotic Process Automation)平台,借助 Automagica,自动化跨平台流程变得轻而易举。Automagica 可以通过简单程序脚本实现打开各种应用程序并对应用进行操作。
    Automagicaoakwood开源的一个项目, 源码开放在automagica

    它基于Python和Tensorflow等开源技术,因此可以轻松接入人工智能领域的最新和重大发展,将其用于日常办公。

    Automagica 需要 Python 3.7 环境,官方支持 Windows 10 平台,Linux 和 Mac 目前官方还不支持。

    Automagica 使用场景:

    • 桌面交互自动化
    • Office 自动化,例如打开 Excel 并进行数据填充
    • Web 自动化,例如打开网址并进行网页操作
    • 商业应用自动化,支持 SAP、Oracle Apps、Siebel、PeopleSoft 与 Salesforce 等
    • 自动打开邮件应用并收发邮件
    • 远程控制等等

    1.鼠标和键盘自动化

    1.鼠标

    坐标示意.png

    1.1GetMouseCoordinates()

    以弹框的形式返回当前鼠标的x与y坐标

    坐标图.png

    1.2左键单击:

    '''ClickOnPosition(x, y)'''

    1.3双击:

    DoubleClickOnPosition(x, y)

    1.4右键点击:

    RightClickOnPosition(x, y)

    1.5将指针移动到某个位置。这可以通过绝对坐标对或相对于当前鼠标位置确定的位置来完成:

    绝对 MoveToPosition(x, y)
    相对 MoveRelative(x, y)

    1.6要在按住按钮的同时将鼠标从当前位置移动到指定位置,例如在屏幕上拖动对象,可以使用以下功能:

    DragToPosition(x, y, button="left")

    第三个参数指定需要按下哪个鼠标按钮。这可以是一个字符串:“left”,“middle”或“right”。下面的示例将鼠标移动到“chrome”图标的位置并将其拖动到其他位置。

    MoveToPosition(532, 443) # 选中网易云简报 DragToPosition(800, 800, "left") # 拖动到800,800

    2.键盘

    2.1要按下并释放键盘上的某个键,您可以使用以下功能:

    PressKey(key="Keyname")

    参数应该是一个字符串。以下列表包含每个可能的键名。: ['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e','f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace', 'browserback', 'browserfavorites', 'browserforward', 'browserhome', 'browserrefresh', 'browsersearch', 'browserstop', 'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f21', 'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja', 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail', 'launchmediaselect', 'left', 'modechange', 'multiply', 'nexttrack', 'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn', 'prtsc', 'prtscr', 'return', 'right', 'scrolllock', 'select', 'separator', 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab', 'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen', 'command', 'option', 'optionleft', 'optionright']

    2.2使用下一个功能可以执行两个或三个键的热键组合:

    PressHotkey(first_key,second_key,third_key=None)

    参数是需要按下的键。如果只按下两个键,则可以省略第三个参数。下一个示例使用组合键“Ctrl + Shift + Esc”打开任务管理器:

    PressHotkey("ctrl","shift","esc")

    2.3可以使用以下函数在所选字段中键入文本:

    Type(text, interval_seconds=0.001)

    第一个参数是以字符串形式输入的文本,而变量是键击之间的时间。请注意,您只能按单个字符键。像“:”,“F1”,......之类的键不能成为第一个参数的一部分。以下示例类型在所选字段中键入“automagica.be/”(在本例中为chrome搜索栏),然后按Enter键:

    Type("automagica.be/", interval_seconds=0.01) PressKey("enter")

    2.4常用功能键:

    Capslock() Numlock() Enter() SpaceBar() Backspace() Delete() Endkey() Tab()

    2.浏览器自动化

    1.基本功能

    1.1要打开浏览器,请从菜单中选择“打开Chrome浏览器”或输入命令:

    browser = ChromeBrowser()

    通过单击菜单中的“浏览到URL”浏览到网站,或使用以下命令:

    browser.get('https://mywebsite.com/')

    1.2关闭浏览器可3以通过以下方式完成:

    browser.close()

    1.3要在浏览器的历史记录中前后移动

    browser.forward() browser.back()

    1.4要点击一个元素:

    element.click() #可插入xpath表达式

    1.5要在文本字段中输入文本:

    element.send_keys("some text") #可用于提交表单

    1.6要清除元素:

    element.clear()

    2.导航

    2.1查找单个元素

    find_element('XPath')

    2.2查找多个元素

    find_elements('XPath')

    2.3按名称选择

    <html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="loginbutton" type="submit" value="Login" /> <input name="clearbutton" type="button" value="Clear" /> </form> </body> <html> //*[@id="custom-bg"]

    用户名和密码字段可以通过以下方式找到:

    要查找并单击登录按钮:

    login = browser.find_element_by_name('loginbutton') login.click()

    边注

    在双重命名的情况下,按名称查找始终会找到第一个元素。想象一下以下的html代码:

    <html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="continue" type="submit" value="Login" /> <input name="continue" type="button" value="Clear" /> </form> </body> <html>

    以下命令将找到名为“continue”的第一个元素,从而选择Login按钮:

    continue = browser.find_element_by_name('continue')

    2.4按ID选择

    当已知时,您可以按Id选择元素。这是一个健壮的方法,但通常nog每个元素都有一个已知的id标记。考虑下面的html代码:

    <html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="continue" type="submit" value="Login" /> </form> </body> <html>

    在这种情况下,表单具有id“loginForm”。因此,可以使用Id选择表单:

    loginform = browser.find_element_by_id('loginForm')

    2.5Xpath选择

    XPath(XML路径语言)是一种用于从XML文档中选择节点的查询语言。由于HTML可以是XML的实现(称为XHTML),因此该语言可用于在Web应用程序中查找和操作目标元素。

    使用XPath的优点是可以到达HTML结构中的每个元素。有关如何使用XPath查找和使用元素的直观介绍,请参阅快速入门。使用完整XPath的缺点是它不是很强大。即使HTML页面中的最轻微更改也会导致绝对XPath更改,结果可能导致机器人无法找到正确的元素。请注意,这与使用元素名称或ID不同,因为只要名称或ID保持不变,仍然可以在HTML页面中找到更改的元素。

    因此,在使用Xpath时,可以通过查找具有id或name属性的附近元素(理想情况下为父元素)来增强稳健性,以便您可以根据关系找到目标元素。

    使用以下源代码:

    <html> <body> <form id="loginForm"> <input name="username" type="text" /> <input name="password" type="password" /> <input name="loginbutton" type="submit" value="Login" /> <input name="clearbutton" type="button" value="Clear" /> </form> </body> <html> //*[@id="custom-bg"]

    选择用户名:

    1. 绝对路径(请注意,如果HTML仅稍微更改,这将会中断)
    2. 指向表单中的第一个元素
    3. 第一个输入元素,其属性名为“name”,值为username

    username = browser.find_element_by_xpath("//form[input/@name='username']") username = browser.find_element_by_xpath("//form[@id='loginForm']/input[1]") username = browser.find_element_by_xpath("//input[@name='username']")

    “清除”按钮可以通过以下方式找到:

    1. 表单元素的第四个输入元素,其属性名为id,值为loginForm
    2. 输入名为name的属性,值为continue,属性名为type,值为button

    clear_button = browser.find_element_by_xpath("//form[@id='loginForm']/input[4]") clear_button = browser.find_element_by_xpath("//input[@name='continue'][@type='button']")

    表格可以通过以下方式选择:

    1. 绝对路径(请注意,如果HTML仅稍微更改,这将会中断):
    2. HTML中的第一个表单元素
    3. 表单元素,其属性名为id,值为loginForm

    login_form = browser.find_element_by_xpath("/html/body/form[1]") login_form = browser.find_element_by_xpath("//form[1]") login_form = browser.find_element_by_xpath("//form[@id='loginForm']")

    2.6浏览示例

    以下示例浏览Google,搜索Automagica,打开第一个Google搜索结果链接

    Open Chrome browser = ChromeBrowser() # Browse to Google browser.get('https://google.com') # Enter Search Text browser.find_element_by_xpath('//[@id="tsf"]/div[2]/div/div[1]/div/div[1]/input').send_keys('automagica') # Submit browser.find_element_by_xpath('//[@id="tsf"]/div[2]/div/div[1]/div/div[1]/input').submit() # Click the first link browser.find_elements_by_class_name('r')[0].click()

    3.流程活动

    1.输入路径名

    在以下许多函数中,路径名都需要作为输入参数。重要的是以正确的方式输入这些以防止所需操作的故障。pathname指定文件,文件夹,可执行文件......所在的目录。这种路径名的一个示例是:“C:\ Users \ Bob \ Desktop \ Automagica.pptx”。在函数中输入时,路径名必须是字符串。因此,每个反斜杠都需要在输入中加倍。下一段代码说明了如何在函数中输入路径名。

    Pathname: C:\Users\Bob\Desktop\Automagica.pptx # As a string: "C:\Users\Bob\Desktop\Automagica.pptx" # In a function: Openfile("C:\Users\Bob\Desktop\Automagica.pptx")

    在Windows资源管理器中,可以通过按Shift +右键单击文件,文件夹来确定路径...弹出一个菜单,您可以在其中选择“复制为路径”(参见图像)。这将te路径作为字符串复制到剪贴板,例如“C:\ Program Files(x86)\ Dropbox \ Client \ Dropbox.exe”。此路径仍需要将其所有反斜杠加倍,以使其以正确的形式输入函数:“C:\ Program Files(x86)\ Dropbox \ Client \ Dropbox.exe”。

    2.标准Windows应用程序

    Windows有几个标准的应用程序,可以使用Automagica的功能打开。以下列表总结了所有可用的功能。如果要打开的程序在此列表中,建议使用这些功能之一,而不是下一小节中描述的更一般的功能。

    打开Windows计算器:

    OpenCalculator()

    打开MS Paint:

    OpenPaint()

    打开记事本:

    OpenNotepad()

    打开Windows截图工具:

    OpenSnippingTool()

    打开Windows控制面板:

    OpenControlPanel()

    打开Windows Clean Manager:

    OpenCleanManager()

    打开Windows拨号器:

    OpenDialer()

    打开Windows Volume Mixer:

    OpenVolumeMixer()

    打开Windows XPS Viewer:

    OpenXPSViewer()

    3.一般命令

    ·以上功能都是特定于程序的。如果已知确切路径,则可以运行程序或将其关闭。以下函数可以打开位于指定路径的可执行文件:

    Start Process LaunchProcess(process_executable="pathname")

    以下示例说明了该功能的用法。该代码将打开百度网盘。

    LaunchProcess("F:\software\百度云\BaiduNetdisk\baidunetdisk.exe")

    (慢)替代方案是使用:

    OpenProgramByName(name, main_drive = "C:\")

    此函数不需要在第一个变量中输入完整路径作为输入。回到上面的例子,Dropbox也可以通过以下方式打开:

    OpenProgramByName("Dropbox")

    4.运行程序

    Automagica可以检查计算机上当前活动的程序。这可以使用需要进程名称的常规函数​​来完成,如果指定的程序处于活动状态,则返回True:

    ProcessRunning(name="program_name")

    除此之外,还有一些特定于程序的函数,如果该程序当前正在运行,则返回True。这些列表如下:

    ChromeRunning() WordRunning() ExcelRunning() PowerpointRunning() DropboxRunning() FirefoxRunning() TeamviewerRunning() SkypeRunning() EdgeRunning() OnedriveRunning() IllustratorRunning()

    最后,每个活动程序的列表可以显示如下:

    ListRunningProcesses()

    5.监控

    1.以下函数列表可用于返回有关CPU,磁盘,内存等当前状态的信息。

    CPULoad(measure_time=1)

    2.返回所有核心的平均CPU负载。每秒测量一次,调整measure_time(秒)以获得更长的平均测量时间。标准measure_time是1秒。

    NumberOfCPU(logical=True)

    3.返回当前系统中CPU的数量。参数'logical'确定是否仅将逻辑单元添加到计数中,默认值为True。

    CPUFreq()

    4.返回CPU当前运行的频率。还显示最小和最大频率。

    CPUStats()

    5.返回CPU统计信息:CTX开关,intterupts,软中断和系统调用的数量。

    MemoryStats(mem_type='swap')

    6.返回内存统计信息:使用的总数,已用数,空闲数和百分比数。为虚拟内存选择mem_type ='virtual',为交换内存选择mem_type ='swap'(标准)。

    DiskStats()

    7.返回主磁盘的磁盘统计信息:总数,已用数,空闲数和使用百分比。

    DiskPartitions()

    8.返回每个分区的信息元组。

    BootTime()

    9.返回时间PC在纪元后几秒内启动。

    TimeSinceLastBoot()

    返回自上次启动以来的时间(秒)

    5.办公自动化

    1.word

    要打开Word文档:

    document = OpenWordDocument('example.docx')

    替换Word文档中的单词。这在使用表单模板时特别有用。确保模板包含唯一的占位符变量,以便自动填充不会导致含糊不清。

    document = ReplaceTextInDocument(document, text='[placeholder]', replace_with='My text')

    将Word文档转换为PDF:

    ConvertWordToPDF(word_filename='C:\document.docx', pdf_filename='C:\document.pdf')

    2.Excel

    2.1读写

    Excel中的自动化大多数时候都需要读写单元格。在Automagica中,这非常简单。

    读取单元格有两个功能。

    Using cell value ExcelReadCell(path="\pathname", cell="A1", sheet=None)

    从Excel文件中读取单元格并返回其值。确保输入有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。您想要读取的单元格需要由单元名称定义,例如“A2”。第三个变量是一个字符串,其中包含需要读取的工作表的名称。如果省略,该函数将读取当前活动工作表的输入单元格。

    Using row column ExcelReadRowCol(path="\pathname", r=1, c=1, sheet=None

    从Excel文件中读取单元格并返回其值。确保输入有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。您要读取的单元格必须是行和列。例如r = 2且c = 3指的是细胞C3。第三个变量是字符串,其中包含需要读取的工作表的名称。如果省略,该函数将读取活动工作表的输入单元格。第一行定义为行号1,第一列定义为列号1

    与读取单元格类似,有两个函数用于将值写入单元格。

    Using cell value ExcelWriteCell(path="\pathname", sheet=None, cell="A1", write_value="Value")

    将单元格写入Excel文件。确保输入有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。单元格应由单元名称定义。例如“B6”。价值可以是任何东西,标准是“价值”。执行代码时,请确保关闭要写入的.xlsx文件。

    Using row and column ExcelWriteCell("C:\Users\Bob\Desktop\RPA Examples\data.xlsx",1,1,value="Robot")

    从Excel文件中读取单元格并返回其值。确保输入有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。您要读取的单元格必须是行和列。例如r = 2且c = 3指的是细胞C3。第三个变量需要是一个字符串,其中包含需要读取的工作表的名称。如果省略,该函数将读取活动工作表的输入单元格。第一行定义为行号1,第一列定义为列号1。

    2.2基本操作

    在阅读和写作之后,Automagica为.xlsx文件提供了一些基本操作。这些列在下面。

    ExcelCreateWorkbook(path="pathname")

    创建一个新的.xlsx文件并将其保存在指定的路径下。如果输入的路径已存在,则该函数不执行任何操作。

    ExcelOpenWorkbook(path="pathname")

    使用Microsoft Excel打开.xlsx文件。确保输入有效路径。这可以是引用现有.xlsx文件的路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。这将打开现有文件。您还可以输入完全新的路径。在这种情况下,该函数使用该路径创建一个新的.xlsx文件,并使用Excel打开它。

    ExcelSaveExistingWorkbook(path="pathname", new_path=None)

    保存(作为)现有的.xlsx文件。第二个变量是文件需要保存的新路径。如果您只想保存文件而不想“另存为”,则可以忽略此变量。要使功能正常工作,请务必不要打开要保存的文件。

    ExcelCreateWorkSheet(path="pathname", sheet_name=None)

    在path变量指定的现有工作簿中创建具有指定名称的新工作表。如果未输入sheet_name,则新工作表将命名为“sheet1”,“sheet2”,“sheet3”,...,具体取决于已存在的工作表。确保您输入引用.xlsx文件的有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。要使函数正常工作,请务必在执行期间关闭.xlsx文件。

    ExcelGetSheets(path="pathname")

    返回包含Excel文件的工作表名称的列表。确保您输入引用.xlsx文件的有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。

    ExcelPutRowInList(path="pathname", start_cell="B3", end_cell="E8", sheet=None)

    将指定行的元素放在列表中。需要读取的.xlsx文件和工作表分别由path-sheet和sheet变量指定。如果未指定工作表,则工作表变量将设置为当前活动工作表。还要使shure进入有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。该行由引用第一个和最后一个单元格的字符串指定。例如,下图中的行由start_cell =“C4”和end_cell =“G4”定义。使用这两个单元格调用函数会返回一个列表:[8,“RPA”,None,19,“Automagica]。要使函数起作用,两个单元格需要属于同一行,start_cell需要是单元格左手边。

    ExcelPutColumnInList(path="pathname", start_cell="A3", end_cell="A8", sheet=None)

    将指定列的元素放在列表中。需要读取的.xlsx文件和工作表分别由path-sheet和sheet变量指定。如果未指定工作表,则工作表变量将设置为当前活动工作表。还要使shure进入有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。该列由引用第一个和最后一个单元格的字符串指定。例如,下图中的区域由start_cell =“C4”和end_cell =“C7”定义。调用函数返回此两个单元格返回一个列表:[8,“RPA”,19,“Automagica”]。要使功能起作用,两个输入的单元格必须属于同一列,start_cell需要是上层单元格。

    ExcelPutSelectionInMatrix(path="pathname", upper_left_cell="B2", bottom_right_cell="C3", sheet=None)

    将指定选择的元素放在矩阵中。需要读取的.xlsx文件和工作表分别由path-sheet和sheet变量指定。如果未指定工作表,则工作表变量将设置为当前活动工作表。还要使shure进入有效路径,例如“C:\ Users \ Bob \ Desktop \ RPA Examples \ data.xlsx”。选择由指向左上角和右下角单元格的字符串指定。例如,在下图中,该区域由upper_left_cell =“C4”和bottom_right_cell =“E6”定义。该函数将返回一个矩阵,其值为:[[8,“Automagica”,12],[“RPA”,15,无],[19,无,55]。如果单元格为空,则其值设置为“无”。

    3.PDF操作

    3.1合并PDF文件

    MergePDF(pdf1="pathname", pdf2="pathname", merged_pdf="pathname")

    此功能可以合并两个现有的PDF文件。前两个参数是需要合并的PDF,作为路径输入。pdf2中的页面已添加到pdf2中。合并的PDF接收由第三个参数指定的新路径。

    3.2从PDF中提取文本

    ExtractTextFromPDFPage(path="pathname", page=1)

    此函数从给定页面中提取所有文本并将其作为字符串返回。需要输入pdf作为路径。请注意输入的页面需要大于0。

    4.文件和文件夹操作

    在许多自动化过程中,控制存储的文件和目录很有用。Automagica具有一些功能,可以使文件和文件夹的操作尽可能简单。

    4.1文件操作

    在以下部分中,描述了Automagica为操作文件提供的功能。此函数的参数主要由路径组成。在此路径中,始终在路径中使用完整文件名非常重要。例如,如果名为“Automagica”的png文件需要操作,则可能的路径可能是:“C:\ Users \ Bob \ Desktop \ Automagica.png”。要使功能起作用,需要在.png中包含名称。

    4.1.1打开文件

    要打开文件,Automagica提供以下功能:

    OpenFile(path="pathname")

    示例路径可以是“C:\ Users \ Bob \ Desktop \ Automagica.xlsx”。

    4.1.2重命名文件

    可以使用以下代码重命名文件:

    RenameFile(path="pathname", new_name)

    第一个参数是需要更改其名称的文件的路径。第二个变量只是文件必须接收的名称,因此不需要是完整路径。例如,下一行代码将名为“Automagica.pptx”的文件名更改为“Automagica123.pptx”:

    RenameFile("C:\Users\Bob\Desktop\Automagica.pptx", "Automagica123.pptx")

    请注意,无法更改文件类型的更改:如果第一个参数中的路径以“.pptx”结尾,则新名称也需要以“.pptx”结尾。

    4.1.3移动文件

    以下函数可用于将文件从一个目录移动到另一个目录:

    MoveFile(old_path="old_pathname", new_location="new_location_path")

    第一个变量contatain应该移动的文件的路径(这包括文件的名称)。第二个参数包含文件需要移动到的位置的路径(在此路径中,应省略文件名)。如果两个参数中的一个包含不存在的路径,则该函数将不返回任何内容。例如,下一段代码将文件“Automagica.txt”从C:\ Users \ Bob \ Desktop \移动到C:\ Users \ Bob \ Downloads \:

    MoveFile("C:\Users\Bob\Desktop\Automagica.txt", "C:\Users\Bob\Downloads")

    如果目标位置已包含与需要移动的文件夹名称完全相同的文件夹,则会在名称中添加八个字符的随机uid。例如,如果在前面的示例中位置C:\ Users \ Bob \ Downloads已包含名为“Automagica.txt”的文件并且代码已执行,则它将从C:\ Users \ Bob \ Desktop移动文件夹“Automagica”到C:\ Users \ Bob \ Downloads并将其名称更改为“(be8e4c88)Automagica.txt”。

    请注意,添加的字符完全是随机的。作为最佳工作函数的最后一点,重要的是关闭需要移动的文件。

    4.1.4复制文件

    如果需要将文件从一个目录复制到另一个目录,可以使用以下函数:

    MoveFile(old_path="old_pathname", new_location="new_location_path")

    输入的工作方式与MoveFile函数完全相同,并且需要关闭复制的文件才能使函数正常工作。另请注意,如果新位置已包含与副本名称完全相同的文件,则它将被复制的文件覆盖。

    4.1.5删除文件

    以下函数用于从文件夹中删除文件:

    RemoveFile(path="pathname")

    它将删除具有给定路径名的文件。使用此代码,关闭需要删除的文件同样重要。

    4.1.6检查文件是否存在

    如果某个文件的路径存在,则Next函数返回True;如果路径不存在则返回False,或者引用文件夹而不是文件。

    FileExists(path="pathname")

    4.1.7等待文件

    以下函数等待,直到创建具有输入路径的文件。

    WaitForFile(path="pathname")

    4.1.8写入和从文件

    可以将列表写入.txt文件或将.txt文件写入列表。这可以通过以下功能完成。

    WriteListToFile(list_to_write, file)

    此函数将列表写入.txt文件。输入列表的每个元素都写在文本文件的新行中。输入.txt文件时带有路径。如果该路径尚不存在,该函数将在指定的路径上创建一个新的.txt文件并写入。如果路径确实存在,则该函数将列表写入现有文件中。

    WriteFileToList(file)

    此函数将输入的.txt文件的内容写入列表并返回该列表。.txt文件中的每一个新行都成为列表的新元素。如果输入的路径未附加到.txt文件,则该功能将不起作用。

    4.2文件夹操作

    可以在文件上执行的大多数操作也可以在文件夹上执行。Automagica提供了一系列功能,可以轻松地对文件夹进行操作。

    4.2.1创建文件夹

    要在所需位置创建文件夹,可以使用以下功能:

    CreateFolder(path="pathname")

    此函数创建一个文件夹,其名称和位置在路径中指定。下一段代码通过在位置C:\ Users \ Bob \ Desktop创建名为“Automagica”的文件夹来说明这一原则。

    CreateFolder("C:\Users\Bob\Desktop\Automagica")

    需要记住的一点是输入的路径必须是唯一的。如果在同一位置已存在同名文件夹,则该功能不执行任何操作。

    4.2.2打开文件夹

    可以使用以下功能打开文件夹:

    OpenFolder(path="pathname")

    4.2.3重命名文件夹

    使用以下函数重命名文件夹:

    RenameFolder(path="pathname", new_name)

    第一个变量是需要重命名的文件夹的路径。第二个变量是文件夹必须接收的新名称。下一个代码示例将文件夹的名称从“Automagica”更改为“Automagica123”。该文件夹位于C:\ Users \ Bob \ Desktop。

    RenameFolder("C:\Users\Bob\Desktop\Automagica", "Automagica123")

    如果新路径已存在,则代码将不返回任何内容。

    4.2.4移动文件夹

    可以使用下一个功能将文件夹从一个位置移动到另一个位置:

    MoveFolder(old_path="pathname", new_location="pathname")

    第一个变量contatain应该移动的文件夹的路径(这包括文件夹的名称)。第二个参数包含文件夹需要移动到的位置的路径(在此路径中,应省略移动的文件夹的名称)。如果两个参数中的一个包含不存在的路径,则该函数将不返回任何内容。例如,下一段代码将文件夹“Automagica”从C:\ Users \ Bob \ Desktop \移动到C:\ Users \ Bob \ Downloads \:

    MoveFolder("C:\Users\Bob\Desktop\Automagica", "C:\Users\Bob\Downloads")

    如果目标位置已包含与需要移动的文件夹名称完全相同的文件夹,则会在名称中添加八个字符的随机uid。例如,如果在前面的示例中位置C:\ Users \ Bob \ Downloads已经包含名为“Automagica”的文件夹并且代码被执行,它将把文件夹“Automagica”从C:\ Users \ Bob \ Desktop移动到C: \ Users \ Bob \ Downloads并将其名称更改为“Automagica(be8e3c88)”。

    请注意,添加的字符完全是随机的。作为最佳工作功能的最后一点,重要的是关闭移动文件夹中的所有文件。

    4.2.5复制文件夹

    可以将文件夹从一个文件夹复制到另一个位置。与文件夹移动的区别在于,在这种情况下,复制的文件夹也保留在原始位置。输入的原理完全类似于文件夹的移动。例如,下一个代码会将名为“Automagica”的文件夹从C:\ Users \ Bob \ Desktop \复制到C:\ Users \ Bob \ Downloads \。

    CopyFolder("C:\Users\Bob\Desktop\Automagica", "C:\Users\Bob\Downloads\")

    如果目标位置已具有同名文件夹,则该函数将向复制文件夹的名称添加八个字符的随机uid。这与MoveFolder函数完全相同。在此旁边,为了使代码正常工作,需要关闭复制文件夹的所有文件。

    4.2.6删除文件夹

    下一个功能可以删除文件夹及其所有内容(文件,只读文件,文件夹......)。

    RemoveFolder(path="pathname", allow_root=False, delete_read_only=True)

    第一个参数应该是需要删除的文件夹的路径。安全变量“allow_root”确保第一个参数超过10个字符。此安全性阻止输入例如“\”作为导致删除根及其所有子目录的路径。要关闭此安全性,请将allow_root明确设置为True。第三个参数使得可以确保该函数在包含只读文件时不删除该文件夹。当“delete_read_only”显式设置为False时,该函数不会删除具有只读文件的文件夹。代码最佳工作的最终要求是需要关闭文件夹中的所有文件。下一个示例说明了该函数的用法。下一行代码将C:\ Users \ Bob \ Desktop \ Automagica文件夹删除为路径。此外,只读文件将被删除,因为变量delete_read_only为True,除非另有明确输入。最后请注意,如果路径长度小于10个字符,代码将不会执行任何操作。

    RemoveFolder("C:\Users\Bob\Desktop\Automagica")

    以下示例删除给定路径上的文件夹,除非它包含只读文件。安全变量保持为False,因此路径应超过10个字符。

    RemoveFolder("C:\Users\Bob\Desktop\Automagica", delete_read_only=False)

    4.2.7清空文件夹

    可以使用以下功能删除文件夹的内容:

    EmptyFolder(path="pathname", allow_root=False)

    第一个参数再次指定需要清空的文件夹的路径。allow_root安全变量具有与删除文件夹的功能相同的功能。以下代码行给出了如何清空具有路径C:\ Users \ Bob \ Desktop \ Automagica的文件夹的示例:

    "EmptyFolder("C:\Users\Bob\Desktop\Automagica")

    要使该功能起作用,请务必关闭该文件夹包含的所有文件。

    4.2.8检查文件夹是否存在

    下一个函数可以检查指定的路径是否存在。

    FolderExists(path="pathname")

    如果输入的路径不存在,则该函数将返回False。如果确实存在,则返回True。例如,下一个片段检查路径为C:\ Users \ Bob \ Desktop \ Automagica的文件夹是否存在:

    FolderExists("C:\Users\Bob\Desktop\Automagica")

    4.2.9ZIP文件夹

    以下函数可用于创建现有目录的压缩文件夹:

    ZipFolder(folder_path="pathname_folder", new_path="pathname_compressed_folder")

    第一个参数是需要压缩的目录的路径名。第二个参数指定带有路径名的压缩文件夹的位置和名称。例如,以下函数使用路径名“C:\ Users \ Bob \ Desktop \ Automagica”来压缩目录。压缩目录由第二个参数指定。

    ZipFolder("C:\Users\Bob\Desktop\Automagica","C:\Users\Bob\Downloads\Automagica")

    请注意,因为如果已经存在一个带有new_path作为路径名的压缩目录,它将被覆盖。

    4.2.10解压缩文件夹

    与ZipFolder功能相反的是:

    UnZipFolder(path="pathname_zipped_folder", new_path="pathname_target_location")

    第一个参数是需要解压缩的压缩文件夹的路径名。第二个参数是可选的。它是将存储解压缩文件夹的目录的路径。如果省略,则解压缩的文件夹将存储在与原始压缩文件夹相同的位置。

    4.2.11等待文件夹

    以下功能等待,直到创建具有输入路径的文件夹。

    WaitForFolder(path="pathname")

    6.图像操作

    Automagica可以通过多种方式操作图像。可用功能如下所列。

    OpenImage(path="pathname")

    显示默认映像程序上路径变量指定的映像。

    RotateImage(path="pathname", angle)

    在指定角度上旋转图像。例如,输入“C:\ Users \ Pictures \ Automagica.jpg”作为路径,角度为90,将图片与给定路径旋转90度。请注意,因为90,180,270,360以外的角度可能会使图像变形。

    ResizeImage(path="pathname", size=(1024, 768))

    调整path变量指定的图像大小。大小由第二个参数指定。这是一个以像素为单位的宽度和高度的元组。例如ResizeImage(“C:\ Users \ Pictures \ Automagica.jpg”,(300,400))给出的图像宽度为300像素,高度为400像素。

    ImageSize(path="pathname")

    返回路径指定的图像的大小(以像素为单位)。大小在以下形式的消息框中返回:“(高度,宽度)

    CropImage(path="pathname",box=None)

    将路径指定的图像裁剪为由box变量确定的区域。这个变量是一个4元组,它定义左,上,右和下像素coördinate,例如:(左,上,右,下)。

    ImageFormat(path="pathname")

    返回由输入路径指定的图像的格式。例如,输入“C:\ Users \ Pictures \ Automagica.jpg”会返回一个表示JPEG的消息框。

    MirrorImageHorizontally(path="pathname")

    使用给定路径从左到右镜像图像。

    MirrorImageVertically(path="pathname")

    使用从上到下的给定路径镜像图像。

    7.电邮操作

    Automagica可以发送包含您的Hotmail,Gmail或Yahoo邮箱地址的电子邮件。三个功能的输入以相同的方式工作。第一个和第二个参数分别是您的电子邮件地址和用户密码。目标变量是您要联系的电子邮件地址。主题和消息变量分别包含主题和文本消息。端口变量是标准587.在大多数情况下,此参数可以忽略,但在某些情况下需要更改为465.使用Gmail帐户时,有一个例外。谷歌有一项安全功能可以阻止不安全的应用程序。要使此功能正常运行,需要关闭此功能,可以通过以下链接完成:https://myaccount.google.com/lesssecureapps。

    SendMailWithHotmail(user="user@hotmail.com", password, destination, subject="", message="", port=587) SendMailWithGmail(user="user@gmail.com", password, destination, subject="", message="", port=587) SendMailWithYahoo(user="user@yahoo.com", password, destination, subject="", message="", port=587)

    8.基本操作

    1.变量和类型

    1.1字符串

    字符串是任何有限的字符序列(即字母,数字,符号和标点符号)。字符串用单引号或双引号定义。

    automagica_string = "robots" DisplayMessageBox(automagica_string)

    1.2字符串操作

    将变量添加到字符串

    您可以将所有变量添加到字符串中。例如,如果要将字符串添加到字符串,可以通过将整数定义为字符串来实现:

    automagica_string = "robot number " automagica_integer = 100 automagica_string2 = automagica_string + int(100) DisplayMessageBox(automagica_string2)

    1.3切片串

    将[n]添加到字符串将选择第n个字符:

    x = "automagica" x[2] >>> t

    添加[n:p]会将字符串从字符n切片到p。通过留下n或p out,它将分别选择第一个和最后一个字符:

    x = "Hello Robot!" x[:5] >>> Hello

    1.4字符串替换

    x = "Robots are evil!" x.replace('evil', 'friendly') >>>Robots are friendly!

    1.5字符串中的大小写

    x = "Robots" #Convert to upper case x.upper() #Convert to lower case x.lower() #Capitalize x.capitalize()

    1.6拆分字符串

    您可以选择将字符串拆分为某个单词或字符。不要忘记通过添加[0]或[1]来指示是否要保留字符串的第一部分或第二部分,因为拆分会导致字符串变为多个字符串的列表:

    x = "Robots will take over the world!" x.split(" over ") >>>['Robots will take', 'the world!'] #Accesing the different strings can be done by: x[0] >>>Robots will take x[1] >>>the world!"

    2.数字

    2.1整型

    整数(简称为int)是一个整数,而不是一个小数,可以是正数,负数或零。

    声明并显示整数:

    automagica_integer = 5 DisplayMessageBox(automagica_integer)

    你可以用整数做基本的数学运算:

    automagica_int1 = 5 automagica_int2 = 10 automagica_int3 = automagica_int1 + automagica_int2 = 15 DisplayMessageBox(automagica_int3)

    2.2浮点数

    浮点数代表实数,用小数点写成整数和小数部分。

    automagica_float = 3.1 DisplayMessageBox(automagica_float)

    3.数学运算

    这里是一个包含基本数学运算的列表,可以与整数和浮点数一起使用。在使用它们之前,需要导入数学模块:

    from math import *

    abs(x):x的绝对值(x和零之间的(正)距离)

    x = -3 abs(x) >>> 3

    ceil(x):x的上限(不小于x的最小整数)

    x = 4.1 ceil(x) >>> 5

    exp(x):x:e x的指数

    x = 3 exp(x) >>> 20.085536923187668

    floor(x):x的底限:不大于x的最大整数

    x = 4.1 floor(x) >>> 4

    log(x):x的自然对数,x> 0

    x = 10 log(x) >>> 2.302585092994046

    max(x1,x2,...)和max(x1,x2,...):其参数的最小和最大值:最接近正无穷大的值

    x1 = 2 x2 = 3 max(x1,x2) >>> 3

    round(x):x从小数点四舍五入到n位数。

    x = 0.5555 round(x, 2) >>> 0.56

    sqrt(x):x的平方根,x> 0

    x = 9 sqrt(9) >>> 3

    4.列表

    列表与数组非常相似。它们可以包含任何类型的变量,并且它们可以包含任意数量的变量。列表也可以以非常简单的方式迭代。这里有一些列表用法示例:

    list = ["R2-D2", "Terminator", "Optimus Prime","WALL-E", "RoboCop"] list.append("WALL-E") list.append("RoboCop") >>>["R2-D2", "Terminator", "Optimus Prime","WALL-E", "RoboCop"] list[0] >>>R2-D2

    5.逻辑运算

    5.1 if

    一个if语句用于决策。只有当if语句为true时,它才会运行代码体。必须有条件的代码块。

    if condition:indentedStatementBlock

    一个例子是:

    temperature = RequestUserInput() if temperature > 20: DisplayMessageBox("Wear short pants!")

    将此示例扩展为多个if语句:

    temperature = RequestUserInput() if temperature < 10: DisplayMessageBox("Wear a warm hat!") if temperature > 20: DisplayMessageBox("Wear short pants!") else: DisplayMessageBox("You can wear normal clothes!")

    上一个例子将会删除字符串“戴上一顶温暖的帽子!” 如果输入数字低于10.如果数字高于20,输出将是穿短裤!。如果仍未满足条件,这意味着输入数字介于10和20之间,则会激活else语句。在这种情况下,消息将显示“你可以穿正常的衣服!” 。

    5.2 for

    while循环评估测试表达式。

    如果测试表达式为真(非零),则while循环体内的代码将被激活。再次评估测试表达式。该过程一直持续到测试表达式为假。

    当测试表达式为false时,while循环终止。

    for.png

    while循环的一个例子:

    automagica_count = 0 while (automagica_count < 3): display_string = "Current count is: " + str(automagica_count) DisplayMessageBox(display_string) count = count + 1

    相关文章

      网友评论

          本文标题:Win10自动化操作-Automagica

          本文链接:https://www.haomeiwen.com/subject/oebfdctx.html