在 Linux 内核中,我可以使用以下命令将文件发送到打印机
cat file.txt > /dev/usb/lp0
据我了解,这会将 file.txt 中的内容重定向到打印位置。我尝试使用以下命令
>>os.system('cat file.txt > /dev/usb/lp0')
我认为这个命令会达到同样的效果,但它给了我一个“Permission Denied”错误。在命令行中,我会在连接之前运行以下命令。
sudo chown root:lpadmin /dev/usb/lp0
有一个更好的方法吗?
原文由 user2125538 发布,翻译遵循 CC BY-SA 4.0 许可协议
虽然您的代码没有理由不工作,但这可能不是您想要的方式。如果你只想运行 shell 命令,
bash
比python
。另一方面,如果你想使用 Python,有比 shell 重定向更好的复制文件的方法。将一个文件复制到另一个文件的最简单方法是使用
shutil
:(当然,如果您有阻止重定向工作的权限问题,您将在复制时遇到相同的权限问题。)
您需要一个从键盘读取输入的程序,当它获得某个输入时,它会打印某个文件。这很容易:
显然,一个真正的程序会稍微复杂一些——它会用不同的命令做不同的事情,并且可能会接受参数来告诉它要打印哪个文件,等等。如果你想这样做,
cmd
模块是一个很大的帮助。