小编Pre*_*sen的帖子

Python多次重复错误

我正在尝试确定某个术语是否出现在字符串中.
术语之前和之后必须出现空格,并且还允许使用标准后缀.
例:

term: google
string: "I love google!!! "
result: found

term: dog
string: "I love dogs "
result: found
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下代码:

regexPart1 = "\s"
regexPart2 = "(?:s|'s|!+|,|.|;|:|\(|\)|\"|\?+)?\s"  
p = re.compile(regexPart1 + term + regexPart2 , re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)

并得到错误:

raise error("multiple repeat")
sre_constants.error: multiple repeat
Run Code Online (Sandbox Code Playgroud)

更新
失败的真实代码:

term = 'lg incite" OR author:"http++www.dealitem.com" OR "for sale'
regexPart1 = r"\s"
regexPart2 = r"(?:s|'s|!+|,|.|;|:|\(|\)|\"|\?+)?\s" 
p = re.compile(regexPart1 + term + regexPart2 , re.IGNORECASE)
Run Code Online (Sandbox Code Playgroud)

另一方面,以下term顺利通过(+而不是++)

term = 'lg …
Run Code Online (Sandbox Code Playgroud)

python regex

25
推荐指数
2
解决办法
4万
查看次数

UnicodeDecodeError:意外的数据结束

我有一个巨大的文本文件,我想打开.
我正在以块的形式读取文件,避免了与一次读取过多文件相关的内存问题.

代码段:

def open_delimited(fileName, args):

    with open(fileName, args, encoding="UTF16") as infile:
        chunksize = 10000
        remainder = ''
        for chunk in iter(lambda: infile.read(chunksize), ''):
            pieces = re.findall(r"(\d+)\s+(\d+_\d+)", remainder + chunk)
            for piece in pieces[:-1]:
                yield piece
            remainder = '{} {} '.format(*pieces[-1]) 
        if remainder:
            yield remainder
Run Code Online (Sandbox Code Playgroud)

代码抛出错误UnicodeDecodeError: 'utf16' codec can't decode bytes in position 8190-8191: unexpected end of data.

我试过UTF8并得到了错误UnicodeDecodeError: 'utf8' codec can't decode byte 0xff in position 0: invalid start byte.

latin-1iso-8859-1 …

unicode python-3.x

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

Android - 如何在长寿背景线程中运行套接字

我正在建立一个简单的聊天,连接Android客户端和Java服务器(在我的电脑上运行).用户可以向/从Android应用程序和桌面服务器发送和接收消息.
我正在处理如何在不同的线程中运行客户端套接字的问题UI Thread.

我看到使用AsyncTask的解决方案,但由于用户可能使用应用程序进行长时间连续通信,AsyncTask看起来像是一种糟糕的方法.

理想情况下,AsyncTasks应该用于操作(最多几秒).API

因为我需要客户端套接字一致地监听来自桌面服务器的消息,所以我想创建一个新的Thread接收Runnable实现类.

我的问题
1.在哪个"线程机制"中放置客户端套接字行(Thread,IntentService)?

Socket client = new Socket(host, port);
InputStreamReader inputStreamReader = new InputStreamReader(client.getInputStream());
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
while ((messageFromServer = bufferedReader.readLine()) != null) { //... }
Run Code Online (Sandbox Code Playgroud)

2.如何将客户端套接字(从不同的线程运行main thread)发布messageFromServerTextView

  1. 当用户输入文本并单击按钮时,如何将用户消息从应用程序发送到服务器(使用客户端套接字)?

谢谢!

sockets client android

8
推荐指数
1
解决办法
9878
查看次数

将变量数组转储到范围 - VBA excel错误1004

我正在使用 for Excel,以便通过以下方式将数据保存到数组中:

Dim allPosts As Variant
allPosts = Range("A2:J5000")
Run Code Online (Sandbox Code Playgroud)

之后,我正在更改allPosts数组中的数据,然后我想通过以下方式将其粘贴回来:

Range("A2:J5000").Value = allPosts
Run Code Online (Sandbox Code Playgroud)

我收到错误:

运行时错误1004应用程序定义或对象定义

并且复制在特定单元格停止,当我将此单元格中的字符串更改为更短时,问题就解决了.

谢谢

excel vba excel-2003 excel-vba

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

使用网络服务发现在 Java 服务器和 Android 客户端之间进行通信

我正在构建一个 Java 服务器应用程序(在 PC 上运行),该应用程序使用JmDNS将自身注册到本地网络,以及一个应该使用Network Service Discovery发现 java 服务器的 Android 客户端应用程序。
\n当我先运行android应用程序,然后运行java服务器时,应用程序成功发现注册的java服务器。
\n但是,当我第一次运行服务器,然后运行 ​​Android 应用程序时,onDiscoveryStarted调用了该方法,但该onServiceFound方法从未触发 - Android 应用程序没有发现服务器。\n这在我看来是一个意想不到的行为。

\n\n

成功案例
\nAndroid应用程序日志:
\n08-24 22:42:06.157 NSD_DISCOVER onCreate
\n08-24 22:42:06.373 NSD_DISCOVER\xef\xb9\x95 onDiscoveryStarted 服务发现已启动
\n08-24 22:42:30.256 NSD_DISCOVER\ xef\xb9\x95 onServiceFound 已知服务类型:_http._tcp。
\n08-24 22:42:30.293 NSD_DISCOVER\xef\xb9\x95 onServiceResolved 解决成功。名称:NsdApp,类型:._http._tcp,主机:/10.0.0.2,端口:52288

\n\n

Java 服务器日志:
\nSTART
\n已注册
\nEND
\nWAITING_FOR_MESSAGE
\nhello world
\nEND_THREAD

\n\n

失败案例

\n\n

Android 应用程序日志:
\n08-24 22:05:21.690 NSD_DISCOVER\xef\xb9\x95 onCreate
\n08-24 22:05:21.908 NSD_DISCOVER\xef\xb9\x95 onDiscoveryStarted 服务发现已启动

\n\n

Java 服务器日志:
\nSTART …

java android client-server jmdns dns-sd

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

在API 21之前设置Progress Bar色调

我正在尝试在不使用setProgressTintList方法的情况下更改Progress Bar色调,因为此方法需要API 21.

例如,单击按钮应在这两种模式之间切换:

之前 后

我的代码:

    int[][] states = new int[][] {
            new int[] { android.R.attr.state_enabled}, // enabled
            new int[] {-android.R.attr.state_enabled}, // disabled
            new int[] {-android.R.attr.state_checked}, // unchecked
            new int[] { android.R.attr.state_pressed}  // pressed
    };



    int[] colors = new int[] {
            getResources().getColor(R.color.my_color),
            getResources().getColor(R.color.my_color),
            getResources().getColor(R.color.my_color),
            getResources().getColor(R.color.my_color)
    };

    ColorStateList myList = new ColorStateList(states, colors);

    ProgressBar simpleProgressBar = (ProgressBar) findViewById(R.id.recording_progress);

    simpleProgressBar.setProgressTintList(myList);
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
0
解决办法
1309
查看次数

ExoPlayer-同时播放两个音轨

使用ExoPlayer我正在尝试同时播放两个音轨。
我的想法是创建两个 MediaSource,并使用进行“组合” MergingMediaSource
这是我所做的:

    Uri uriAudio1 = Uri.parse(AUDIO_URL_1);
    Uri uriAudio2 = Uri.parse(AUDIO_URL_2);

    MediaSource audioSource1  = new ExtractorMediaSource(uriAudio1, dataSourceFactory, extractorsFactory, mainHandler, null);
    MediaSource audioSource2  = new ExtractorMediaSource(uriAudio2, dataSourceFactory, extractorsFactory, mainHandler, null);


    MergingMediaSource mergedAudioSource = new MergingMediaSource(audioSource1, audioSource2);


    mPlayer.prepare(mergedAudioSource);
Run Code Online (Sandbox Code Playgroud)

但是,我没有听到并行的两个音轨,而是只听到了第一声audioSource1

有任何想法吗?谢谢!

android exoplayer

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

从onDown()返回false的含义

根据android的培训,如果您扩展GestureDetector.SimpleOnGestureListener,并且falseonDown(...)的返回比其他方法GestureDetector.SimpleOnGestureListener永远都不会调用:

无论您是否使用GestureDetector.OnGestureListener,最佳实践都是实现一个返回true的onDown()方法。这是因为所有手势均以onDown()消息开头。如果从onDown()返回false,则默认情况下,如GestureDetector.SimpleOnGestureListener所做的那样,系统将假定您要忽略其余手势,并且永远不会调用GestureDetector.OnGestureListener的其他方法。这有可能在您的应用程序中引起意外问题。唯一应该从onDown()返回false的情况是,如果您确实要忽略整个手势。

但是,在我的简单测试onScroll(...)中被称为。

public void onCreate(Bundle savedInstanceState) {
    mDetector = new GestureDetectorCompat(this, MyGestureListener);
}


public boolean onTouchEvent(MotionEvent event) { 
    mDetector.onTouchEvent(event);
    return true;
}


class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
    private boolean scrollEvent;

    @Override
    public boolean onDown (MotionEvent event) {
        Log.v("GESTURE", "onDown ");
        return false;
    }

    @Override
    public boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
        Log.v("GESTURE", "onScroll");
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

另一个类似的问题是下一个定义,同样来自相同的android培训页面:

来自各个on方法的返回值true表示您已经处理了touch事件。返回值为false的事件将事件向下传递通过视图堆栈,直到成功处理触摸为止。

如何用之前的报价解决?

android gesture

3
推荐指数
1
解决办法
2560
查看次数

打开巨大的文本文件并执行正则表达式搜索

我正在尝试打开一个巨大的文本文件(1 GB)并执行一些文本挖掘.
我愿意进行一些正则表达式搜索.
当我使用read()函数时,我收到错误:

File "C:\Python33\lib\encodings\latin_1.py", line 26, in decode
return codecs.latin_1_decode(input,self.errors)[0]
MemoryError
Run Code Online (Sandbox Code Playgroud)

我的代码是:

dataFile = open('data/AllData_2000001_3000000.txt', 'r', encoding="latin-1")
print(dataFile.read())
Run Code Online (Sandbox Code Playgroud)

为了执行正则表达式搜索,打开文本的最佳方法是什么?
谢谢!

python regex text-mining

2
推荐指数
1
解决办法
264
查看次数

TypeError:'str'不支持缓冲区接口,Python 3

我有很多CSV文件,我希望他们加入一个txt文件binary格式..
以下代码给出了上述错误:

import os
from csv import reader
from csv import writer

CONST_DATA_DIR = "F:/Data/"
CONST_DATABIN_DIR = "F:/DataBinary/"


def createFilesArr():
    filesArr = []
    os.chdir(CONST_DATA_DIR)
    for file in os.listdir("."):
        if file.endswith(".csv"):
            filesArr.append(file)
    return filesArr


filesArr = createFilesArr()

newFileName = "oneBinaryFile.txt"
newFile = open(CONST_DATABIN_DIR + newFileName, 'wb')

for file in filesArr:
    currentFile = open(CONST_DATA_DIR + file, 'r', newline='', encoding='UTF8')
    newFile.write(currentFile.read())
    currentFile.close()

newFile.close() 
Run Code Online (Sandbox Code Playgroud)

编辑:
CSV文件最初是写成一个txt类型.另一方面,合并文件应该是二进制格式.
创建CSV文件的过程很复杂,因此,如果可能的话,我更喜欢在阅读之前以某种方式转换文件.
有什么建议?

python csv

2
推荐指数
1
解决办法
9599
查看次数