我正在尝试对中文文本进行文本分析.该计划如下.我得到的结果有不可读的字符,比如????????.如果我将输出文件更改result.csv为result.txt,则字符正确为??????.那有什么不对呢?我弄不清楚.我试过几种方法,包括添加decoder和encoder.
# -*- coding: utf-8 -*-
import os
import glob
import jieba
import jieba.analyse
import csv
import codecs
segList = []
raw_data_path = 'monthly_raw_data/'
file_name = ["201010", "201011", "201012", "201101", "201103", "201105", "201107", "201109", "201110", "201111", "201112", "201201", "201202", "201203", "201205", "201206", "201208", "201210", "201211"]
jieba.load_userdict("customized_dict.txt")
for name in file_name:
all_text = ""
multi_line_text = ""
with open(raw_data_path + name + ".txt", "r") as file:
for line in …Run Code Online (Sandbox Code Playgroud) 我明白了unicode,编码和解码.但我不明白为什么编码功能适用于str类型.我希望它只适用于unicode类型.因此我的问题是:当它在str而不是unicode上使用时,编码的行为是什么?
使用以下代码,我想将某些语言的字母显示到一个标签中。
\n\n这些语言是:英语、德语、日语、中文、俄语、法语、西班牙语、阿拉伯语。
\n\n我尝试使用一些 Windows 系统字体,但它们都不能正确显示所有字母。
\n\n我想知道是否有任何字体可以支持以上所有语言?
\n\n或者我怎样才能在kivy中做到这一点?(将所有这些都放在一个标签中。)
\n\n这是代码:
\n\n# -*- coding: utf-8 -*-\n\nfrom kivy.app import App\n#kivy.require("1.8.0")\nfrom kivy.uix.label import Label\nfrom kivy.uix.widget import Widget\n\nfrom kivy.lang import Builder\nimport kivy.resources\n\n#kivy.resources.resource_add_path(r\'/home/kivy/android/android-sdk-linux/platforms/android-18/data/fonts\')\nkivy.resources.resource_add_path(\'C:\\Windows\\Fonts\')\n\nimport os.path\n\nBuilder.load_string(\'\'\'\n<Label>:\n font_name: \'AdobeGothicStd-Bold.otf\'\n\n<Widgets>:\n Label:\n text: "ABC \xc3\x84\xc3\xa4\xc3\x9c\xc3\xbc\xc3\x9f \xe3\x81\xab\xe3\x81\xbb\xe3\x82\x93\xe3\x81\x94 \xe4\xb8\xad\xe6\x96\x87 \xd1\x80\xd1\x83\xcc\x81\xd1\x81\xd1\x81\xd0\xba\xd0\xb8\xd0\xb9 \xd1\x8f\xd0\xb7\xd1\x8b\xcc\x81\xd0\xba \xc3\x89\xc3\xa9\xc3\x88\xc3\xa8\xc3\x8a\xc3\xaa\xc3\x8b\xc3\xab Espa\xc3\xb1ol\xd8\xa7\xd9\x84\xd8\xb9\xd9\x8e\xd8\xb1\xd9\x8e\xd8\xa8\xd9\x90\xd9\x8a\xd9\x8e\xd9\x91\xd8\xa9\xe2\x80\x8e \xe2\x80\x8efran\xc3\xa7ais"\n size: root.width, 75\n pos: root.x, root.top - 150\n font_size: 50\n height: 75\n\'\'\')\n\nclass Widgets(Widget):\n def build(self):\n return Widgets()\n\nclass MyApp(App):\n def build(self):\n return Widgets()\n\nif __name__ == "__main__":\n MyApp().run()\nRun Code Online (Sandbox Code Playgroud)\n\n谢谢!
\n我只想接收可用的数据。就像Serial.available()在Arduino中一样。我想要这样的代码:
if there is data:
receive and print
else:
print 'No data'
Run Code Online (Sandbox Code Playgroud)
事实上,我不希望程序仅仅因为接收数据而停止。
我正在为 Python 的 C 代码创建一个包装器。C代码基本上在终端中运行,具有以下主要函数原型:
void main(int argc, char *argv[]){
f=fopen(argv[1],"r");
f2=fopen(argv[2],"r");
Run Code Online (Sandbox Code Playgroud)
所以基本上读取的参数是终端中的字符串。我创建了以下 python ctype 包装器,但看来我使用了错误的类型。我知道从终端传递的参数被读取为字符,但等效的 python 侧包装器给出以下错误:
import ctypes
_test=ctypes.CDLL('test.so')
def ctypes_test(a,b):
_test.main(ctypes.c_char(a),ctypes.c_char(b))
ctypes_test("323","as21")
TypeError: one character string expected
Run Code Online (Sandbox Code Playgroud)
我尝试添加一个字符,只是为了检查共享对象是否被执行,它与打印命令一样工作,但暂时直到共享对象中的代码部分需要文件名为止。我也尝试过
ctypes.c_char_p但是得到了。
Process finished with exit code 139 (interrupted by signal 11: SIGSEGV)
Run Code Online (Sandbox Code Playgroud)
根据评论中的建议更新为以下内容:
def ctypes_test(a,b):
_test.main(ctypes.c_int(a),ctypes.c_char_p(b))
ctypes_test(2, "323 as21")
Run Code Online (Sandbox Code Playgroud)
但遇到同样的错误。
使用swig 2.0.8和python 3.2,运行
swig -python -modern -py3 -o mymodule_wrap.c mymodule.i
Run Code Online (Sandbox Code Playgroud)
生成一个包装文件,其中包含
# define SWIG_init PyInit__mymodule
Run Code Online (Sandbox Code Playgroud)
在那里(注意 PyInit 和 mymodule 之间的两个下划线)。
导入失败并显示
python3 -c "import mymodule"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: dynamic module does not define init function (PyInit_mymodule)
Run Code Online (Sandbox Code Playgroud)
(注意单下划线)。
手动删除下划线mymodule_wrap.c并重新编译工作模块中的结果。
在这个问题中:SWIG and Python3 Import Error python 解释器抱怨找不到PyInit__module.
怎么了?
我创建了ECM NewsLetter,其中包含一些指向网站的链接(另一个项目).在线版的NewsLetter链接工作正常,但当我将此NewsLetter发送到我的电子邮件并尝试点击我的邮件收件箱中的链接时,显示404找不到错误.基本URL - 正确配置的所有链接的默认地址.我错过了什么?也许有些配置?我感谢您提供的任何帮助.
到现在为止,我有这段代码(我知道它很丑,但这不是现在的重点)
我无法弄清楚如何发出以下系统调用并构建正确的结构来访问另一个进程的 PEB。
我想做以下事情:
HANDLE pHandle = OpenProcessNTSTATUS status = NtQueryInformationProcess(pHandle, 0, peb, peb_len, 0)代码:
from ctypes import *
from ctypes.wintypes import *
from _multiprocessing import win32
import argparse
class UNICODE_STRING(Structure):
_fields_ = [
("Length", USHORT),
("MaximumLength", USHORT),
("Buffer", c_wchar_p)
]
class RTL_USER_PROCESS_PARAMETERS(Structure):
_fields_ = [
("Reserved1", BYTE*16),
("Reserved2", BYTE*10),
("ImagePathName", UNICODE_STRING),
("CommandLine", UNICODE_STRING)
]
class PEB(Structure):
_fields_ = [
("Reserved1", BYTE*2),
("BeingDebugged", BYTE),
("Reserved2", BYTE),
("Rserved3", LPVOID),
("Ldr", LPVOID),
("ProcessParameters", POINTER(RTL_USER_PROCESS_PARAMETERS)),
("Reserved4", BYTE*104),
("Reserved5", LPVOID*52), …Run Code Online (Sandbox Code Playgroud) 我需要比较两个字符串。aa从 PDF 文件中提取(使用 pdfminer/chardet)并且bb是键盘输入。如何标准化第一个字符串以进行比较?
>>> aa = "?"
>>> bb = "?"
>>> aa == bb
False
>>>
>>> aa.encode('utf-8')
b'\xc4\x81'
>>> bb.encode('utf-8')
b'a\xcc\x84'
Run Code Online (Sandbox Code Playgroud) 假设我想实现一个具有以下签名的 Python 脚本:
myscript.py INPUT OUTPUT
Run Code Online (Sandbox Code Playgroud)
...其中INPUT和分别OUTPUT代表脚本将读取和写入的文件的路径。
用于实现具有此类签名的脚本的代码可能具有以下构造:
with open(inputarg, 'r') as instream, open(outputarg, 'w') as outstream:
...
Run Code Online (Sandbox Code Playgroud)
...这里的inputarg和变量保存通过其和命令行参数outputarg传递给脚本的文件路径(字符串) 。INPUTOUTPUT
到目前为止没有什么特别或不寻常的事情。
但现在,假设对于脚本的版本 2,我想为用户提供-为其一个(或两个)参数传递特殊值的选项,以指示脚本应分别读取stdin和写入stdout。
换句话说,我希望以下所有形式都能产生相同的结果:
myscript.py INPUT OUTPUT
myscript.py - OUTPUT <INPUT
myscript.py INPUT - >OUTPUT
myscript.py - - <INPUT >OUTPUT
Run Code Online (Sandbox Code Playgroud)
现在,with之前的说法已经不再适用。一方面,表达式open('-', 'r')oropen('-', 'w')都会引发异常:
FileNotFoundError: [Errno 2] No such file or directory: '-'
Run Code Online (Sandbox Code Playgroud)
我无法想出一种方便的方法来扩展with上面基于 …