小编Mar*_*nen的帖子

Python CSV写入文件在Excel中无法读取(中文字符)

我正在尝试对中文文本进行文本分析.该计划如下.我得到的结果有不可读的字符,比如????????.如果我将输出文件更改result.csvresult.txt,则字符正确为??????.那有什么不对呢?我弄不清楚.我试过几种方法,包括添加decoderencoder.

    # -*- 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)

python csv unicode excel

7
推荐指数
1
解决办法
6866
查看次数

在python中的str上使用encode时会发生什么?

我明白了unicode,编码和解码.但我不明白为什么编码功能适用于str类型.我希望它只适用于unicode类型.因此我的问题是:当它在str而不是unicode上使用时,编码的行为是什么?

python string unicode encode python-2.x

6
推荐指数
1
解决办法
469
查看次数

Python + kivy:如何在一个标签中显示多种语言(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()\n
Run Code Online (Sandbox Code Playgroud)\n\n

谢谢!

\n

python unicode character-encoding kivy

6
推荐指数
1
解决办法
2979
查看次数

仅当 Python 套接字中可用时才接收数据

我只想接收可用的数据。就像Serial.available()在Arduino中一样。我想要这样的代码:

if there is data:
     receive and print
else:
     print 'No data'
Run Code Online (Sandbox Code Playgroud)

事实上,我不希望程序仅仅因为接收数据而停止。

python sockets tcp

6
推荐指数
1
解决办法
7309
查看次数

使用 ctypes 调用 argc/argv 函数

我正在为 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)

但遇到同样的错误。

python ctypes

6
推荐指数
1
解决办法
1736
查看次数

swig 和 python3:多余的下划线

使用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.

怎么了?

python swig

5
推荐指数
1
解决办法
2943
查看次数

Sitecore ECM简报:站点链接无法通过邮件收件箱工作

我创建了ECM NewsLetter,其中包含一些指向网站的链接(另一个项目).在线版的NewsLetter链接工作正常,但当我将此NewsLetter发送到我的电子邮件并尝试点击我的邮件收件箱中的链接时,显示404找不到错误.基本URL - 正确配置的所有链接的默认地址.我错过了什么?也许有些配置?我感谢您提供的任何帮助.

sitecore sitecore6 sitecore-ecm

5
推荐指数
1
解决办法
947
查看次数

如何使用python ctypes访问另一个进程的PEB

到现在为止,我有这段代码(我知道它很丑,但这不是现在的重点)

我无法弄清楚如何发出以下系统调用并构建正确的结构来访问另一个进程的 PEB。

我想做以下事情:

  1. HANDLE pHandle = OpenProcess
  2. NTSTATUS status = NtQueryInformationProcess(pHandle, 0, peb, peb_len, 0)
  3. 走 PEB_LDR_DATA

代码:

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)

winapi ctypes python-2.7

5
推荐指数
1
解决办法
2354
查看次数

如何“规范化”python 3 unicode 字符串

我需要比较两个字符串。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)

utf-8 python-3.x python-unicode

5
推荐指数
1
解决办法
1万
查看次数

如何使用上下文管理器支持可选的 stdin/stdout?

假设我想实现一个具有以下签名的 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上面基于 …

python stdin stdout contextmanager

5
推荐指数
1
解决办法
858
查看次数