打印文件后如何移动文件?

时间:2019-07-19 08:37:10

标签: powershell python-3.7 printers

我有一个没有macOS驱动程序的Labelprinter(epson TM-C3500)。因此,我想为网络中的macOS用户创建一个文件夹。每当将文件丢入该文件夹时,它就会从Windows服务器上打印出来。打印后,我想将文件移动到其他位置。 我想在python3中写这个。 到目前为止,我的代码:

def process(y,x):
    if not isinstance(x, sympy.symbol.Symbol):
        raise Exception(str(x) + " should be a sympy symbol")

    if not isinstance(y,sympy.function.UndefinedFunction):
        raise Exception(str(y) + " should be a sympy function")

import sympy
x   = sympy.symbols('x')
y   = sympy.Function('y')
process(y,x)

问题在于每个printjob的持续时间都不一样,当我将文件移至早期时,它会使打印过程崩溃。 我查看了诸如 pycups win32printer 之类的模块,但它们似乎仅支持python2,甚至尝试了在互联网上找到的poweshellscript。这不是最糟糕的主意。但是即使在powershell中,我也不知道如何等待后台处理程序完成对打印文件的文件读取。我也不是Powershell专家。

Powershell:

import shutil
import os
import time
printed = []
while True:
    source_dir = os.path.expanduser('~/Documents/Python_Powershell_print/printfolder')
    dest_dir = os.path.expanduser('~/Documents/Python_Powershell_print/printed')
    if os.listdir(source_dir):
        time.sleep(15)
        for file in os.listdir(source_dir):
            fullpath = os.path.join(source_dir, file)
            os.startfile(fullpath,"print")
            printed.append(fullpath)
            print(printed)
            time.sleep(15) #Here we are waiting till the file is printed
            shutil.copy(fullpath,dest_dir)
            os.remove(os.path.join(source_dir,file)) 
    else:
        time.sleep(3)
        print(printed)
    time.sleep(3)

有人知道吗?

0 个答案:

没有答案