在Windows 10上,日志记录模块发送此错误(使用scrapy)
# --- Logging error ---
...
# UnicodeEncodeError: 'charmap' codec can't encode characters in position 175-176: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)
我已经读过我应该添加, 编辑:根据tuto,它是不需要的. encoding='utf-8'但我没有找到如何在下面的代码中添加它.
configure_logging(install_root_handler=False) #override default log settings
logging.basicConfig(
filename='logfile.log',
format='%(levelname)s: %(message)s',
datefmt='%m-%d %H:%M',
level=logging.INFO #CRITICAL ERROR WARNING INFO DEBUG NOTSET
)
Run Code Online (Sandbox Code Playgroud)
我发现了很多关于这些主题的问题,但主要是关于python 2(或者与日志记录模块无关).日志教程甚至没有谈论utf-8.(请注意,我可以毫无问题地打印UTF8字符.问题只发生在记录模块上)
logging encoding error-logging character-encoding python-3.x
根据pynput 文档,我尝试“剪切”:
1:在编辑器中选择一些文本
2:使用快捷方式运行this_code.py(不离开活动窗口)
from pynput.keyboard import Key, Controller
keyboard = Controller()
with keyboard.pressed(Key.ctrl):
keyboard.press('x')
keyboard.release('x')
Run Code Online (Sandbox Code Playgroud)
python控制台打开实际上打印:^X。键的组合是正确的,但它没有执行它应该执行的操作:剪切选定的文本并将其存储在剪贴板中。(我不想只将剪贴板内容存储在变量中,我想要 Ctrl+C)
我想这个答案也将解决剩余部分:Ctrl+V(过去一些将首先插入剪贴板的数据)
如何在 7-zip“添加到存档”对话框的第一个字段中写入“hello”?
到目前为止,我设法使用此触发 7-zip (windows 64x)“添加到存档”对话框
from pywinauto.application import Application
app = Application().start(r"C:\Program Files\7-Zip\7zFM.exe") #set the app
app.top_window_().Edit.type_keys(r"C:\Users\me\Desktop{ENTER}")
app.top_window_().SysListView32.Select(r'test.txt') #select files in list
app.top_window_().ToolbarAdd.TypeKeys("{ENTER}") #apply
Run Code Online (Sandbox Code Playgroud)
然后我无法选择“添加到存档”对话框。
1:这不起作用。我猜是因为它没有找到对话框。如果是这样,为什么?
app.window(title_re="Add to Archive", class_name="#32770").print_control_identifiers()
Run Code Online (Sandbox Code Playgroud)
2:这也不起作用:
app.window(title_re="Add to Archive", class_name="#32770").Edit.type_keys("hello")
Run Code Online (Sandbox Code Playgroud)
3:我尝试使用查找我的应用程序上的所有可用对话框print(app.windows())
但它打印出这个:
[<pywinauto.controls.win32_controls.DialogWrapper object at 0x0000000004033D68>, <pywinauto.controls.common_controls.ToolTipsWrapper object at 0x0000000004089128>, <pywinauto.controls.hwndwrapper.HwndWrapper object at 0x0000000004089208>, <pywinauto.controls.win32_controls.DialogWrapper object at 0x
00000000040893C8>, <pywinauto.controls.win32_controls.DialogWrapper object at 0x0000000004089390>]
Run Code Online (Sandbox Code Playgroud)
我没有看到任何“添加到存档”窗口,为什么?这些东西是什么(例如 in32_controls.DialogWrapper)?
python-3.x ×3
python ×2
7zip ×1
automation ×1
copy-paste ×1
encoding ×1
key ×1
keyboard ×1
logging ×1
pywinauto ×1