小编Cyb*_*rai的帖子

如何使用hinstance确定win32api.ShellExecute是否成功?

我一直在寻找原始问题的答案..如何(以编程方式)确定我的win32api.ShellExecute语句成功执行,如果成功执行,则执行os.remove()语句.

研究我发现ShellExecute()调用返回HINSTANCE.进一步挖掘我发现如果成功,ShellExecute()将返回HINSTANCE> 32.我的问题/问题是,如何使用它来控制程序的其余部分?我尝试使用if HINSTANCE> 32:语句来控制下一部分,但我得到了一条NameError: name 'hinstance' is not defined消息.通常这不会让我感到困惑,因为这意味着我需要在引用之前定义变量'hinstance'; 但是,因为我认为ShellExecute应该返回HINSTANCE,我认为它可以使用吗?

这是我的完整代码,我试图实现这一点.请注意,在我的print_file()中,我将hinstance分配给完整的win32api.ShellExecute()命令,以尝试捕获hinstance并在函数末尾显式返回它.这也不起作用.

import win32print
import win32api
from os.path import isfile, join
import glob
import os
import time

source_path = "c:\\temp\\source\\"

def main():
    printer_name = win32print.GetDefaultPrinter()
    while True:
        file_queue = [f for f in glob.glob("%s\\*.txt" % source_path) if isfile(f)]
        if len(file_queue) > 0:
            for i in file_queue:
                print_file(i, printer_name)
                if hinstance > 32:
                    time.sleep(.25)
                    delete_file(i)
                print "Filename: %r has printed" % i
                print
                time.sleep(.25)
                print                
        else:
            print …
Run Code Online (Sandbox Code Playgroud)

python winapi pywin32 shellexecute python-2.7

3
推荐指数
1
解决办法
5918
查看次数

按特定模式重新排序文本文件中的列

我是awk的新人,一直在试图让这个工作起来.我正在尝试在"image.list"中获取文件列表并从中创建"info"文件.我需要从文件名中间抓取匹配正则表达式(数字长8-11位)的字符串,并将该匹配打印到我的"信息文件"中的指定位置.最后一部分是我无法脱身的部分.希望能帮助解决这个问题.

这是我的测试文件列表:

SURGERY0001275678image1.jpg
SURGERY11134900211image2.jpg
SURGERY19257012image3.jpg
SURGERY273142590image4.jpg
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码:

awk 'BEGIN {print "-----TEST TAG FILE\tENCOUNTERS-----";}
> {print "FILE:  /tmp/imagetest/"$1,"\t","ENCOUNTER: ",($1~/^[0-9]{8,11}$/);}
> END{print "END REPORT";
> }' image.list > upload.tag
Run Code Online (Sandbox Code Playgroud)

这是我目前的输出:

-----TEST TAG FILE      ENCOUNTERS-----
FILE:  /tmp/imagetest/SURGERY0001275678image1.jpg        ENCOUNTER:  0
FILE:  /tmp/imagetest/SURGERY11134900211image2.jpg       ENCOUNTER:  0
FILE:  /tmp/imagetest/SURGERY19257012image3.jpg          ENCOUNTER:  0
FILE:  /tmp/imagetest/SURGERY273142590image4.jpg         ENCOUNTER:  0
END REPORT
Run Code Online (Sandbox Code Playgroud)

我需要它显示的是"ENCOUNTER:"之后文件名中间的8-11位数字.到目前为止,我尝试过的所有内容都输出整个文件名或"0".

我可能偏离航线,所以我很乐意从专家那里得到一些帮助!

regex perl awk sed pattern-matching

2
推荐指数
1
解决办法
281
查看次数

标签 统计

awk ×1

pattern-matching ×1

perl ×1

python ×1

python-2.7 ×1

pywin32 ×1

regex ×1

sed ×1

shellexecute ×1

winapi ×1