小编Fra*_*urt的帖子

在Qt中递归遍历目录,跳过文件夹"." 和"......"

我在使用Qt函数递归遍历目录时遇到了一些麻烦.我正在做的事情:

打开指定的目录.遍历目录,每次遇到另一个目录时,打开该目录,浏览文件等.

现在,我如何做到这一点:

QString dir = QFileDialog::getExistingDirectory(this, "Select directory");
if(!dir.isNull()) {
    ReadDir(dir);
}

void Mainwindow::ReadDir(QString path) {
    QDir dir(path);                            //Opens the path
    QFileInfoList files = dir.entryInfoList(); //Gets the file information
    foreach(const QFileInfo &fi, files) {      //Loops through the found files.
        QString Path = fi.absoluteFilePath();  //Gets the absolute file path
        if(fi.isDir()) ReadDir(Path);          //Recursively goes through all the directories.
        else {
            //Do stuff with the found file.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我面临的实际问题:自然,entryInfoList也会返回'.' 和'..'目录.通过这种设置,这证明是一个主要问题.

通过进入'.',它将遍历整个目录两次,甚至是无限的(因为'.'始终是第一个元素),使用'..'它将重做父目录下所有文件夹的进程.

我想做的很好,很时尚,有什么办法可以解决这个问题,我不知道吗?或者是唯一的方法,我得到纯文件名(没有路径)并检查对'.' 和'..'?

c++ directory qt

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

如何在MySQL Workbench上执行需要更长时间99,999秒的SQL查询?

更新:问题现已解决.


我想执行一个执行时间超过99,999秒的查询(例如SELECT SLEEP(150000);).要更改MySQL Workbench中的超时,我们必须转到编辑→首选项→SQL编辑器→DBMS连接读取超时(以秒为单位).但是,该DBMS connection read time out字段仅接受最多5个数字,将字段设置为0等于默认参数(600秒).如果查询花费的时间超过超时,我会收到错误消息:Error Code: 2013. Lost connection to MySQL server during query

因此我的问题是:是否可以将此限制增加到超过99,999秒?我使用Windows 7 64位Ultimate和MySQL Workbench 5.2.47 CE.

DBMS connection read time out字段: 在此输入图像描述

超时问题(0相当于默认参数(600秒)): 在此输入图像描述

mysql-workbench

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

Python元素树 - 从元素中提取文本,剥离标签

使用Python中的ElementTree,如何从节点中提取所有文本,剥离该元素中的任何标记并仅保留文本?

例如,假设我有以下内容:

<tag>
  Some <a>example</a> text
</tag>
Run Code Online (Sandbox Code Playgroud)

我想回来Some example text.我该怎么做呢?到目前为止,我所采取的方法都有相当严重的后果.

python elementtree xml-parsing

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

在Python中Matlab的cwt()相当于什么?(连续一维小波变换)

我想计算具有不同尺度和时移的信号的小波.

在Matlab中使用Wavelet Toolbox中cwt()提供的函数(连续1-D小波变换),我可以指定我想要的比例作为cwt()的参数,它将返回所有可能的时移:

x = [1, 2, 3, 4];
scales = [1, 2, 3];
wavelet_name = 'db1';
coefs = cwt(x,scales, wavelet_name);

>> coefs =   

   -0.0000   -0.0000   -0.0000    0.0000
   -0.7071   -0.7071   -0.7071   -0.7071
   -1.1553   -1.1553   -1.1553    1.7371
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Python中实现这一目标?

到目前为止,这是我的两次尝试:

  1. PyWavelets(Python中的离散小波变换)中,我看不出如何指定小波的scale参数.
  2. scipy.signal.cwt,我找不到我可以传递给scipy.signal.cwt的内置小波函数列表:我想至少拥有最常见的小波函数,如sym2和db1.(例如,参见Matlab的内置小波列表).

python matlab signal-processing wavelet

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

在MySQL Workbench中将结果网格中的列宽保存

每次运行查询时,MySQL Workbench中结果网格中的列宽度都会重置:

在此输入图像描述

有什么方法可以防止这种情况吗?根据错误跟踪器,这个问题是在3.5年前修复的.

mysql mysql-workbench

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

使用matplotlib中的换行符标注图例标题

我使用以下代码显示matplotlib 的图例标题:

import matplotlib.pyplot as plt

# data 
all_x = [10,20,30]
all_y = [[1,3], [1.5,2.9],[3,2]]

# Plot
plt.plot(all_x, all_y)

# Add legend, title and axis labels
plt.legend( [ 'Lag ' + str(lag) for lag in all_x], loc='lower right', title='hello hello hello \n world')
plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

正如您所看到的,"世界"并非居中.我希望它居中,我可以通过手动添加空格来实现:

import matplotlib.pyplot as plt

# data 
all_x = [10,20,30]
all_y = [[1,3], [1.5,2.9],[3,2]]

# Plot
plt.plot(all_x, all_y)

# Add legend, title and axis labels
plt.legend( [ 'Lag ' + str(lag) for lag in …
Run Code Online (Sandbox Code Playgroud)

matplotlib

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

脚本在Matlab中运行时关闭所有数字

假设脚本在Matlab中运行.有没有办法关闭所有数字?(单独关闭每个数字是单调乏味的,并且由于脚本正在运行,我无法添加close all它.)

matlab figures

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

如何使用MIST库去除文本?

我想知道我如何使用MIST库来去除文本,例如转换

Patient ID: P89474

Mary Phillips is a 45-year-old woman with a history of diabetes.
She arrived at New Hope Medical Center on August 5 complaining
of abdominal pain. Dr. Gertrude Philippoussis diagnosed her
with appendicitis and admitted her at 10 PM.
Run Code Online (Sandbox Code Playgroud)

Patient ID: [ID]

[NAME] is a [AGE]-year-old woman with a history of diabetes.
She arrived at [HOSPITAL] on [DATE] complaining
of abdominal pain. Dr. [PHYSICIAN] diagnosed her
with appendicitis and admitted her at 10 PM. …
Run Code Online (Sandbox Code Playgroud)

nlp

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

外部在pandas中合并两个数据帧

如何在pandas中合并两个数据框?

例如,假设我们有这两个数据框:

import pandas as pd

s1 = pd.DataFrame({
    'time':[1234567000,1234567005,1234567009],
    'X1':[96.32,96.01,96.05]
},columns=['time','X1'])  # to keep columns order

s2 = pd.DataFrame({
    'time':[1234567001,1234567005],
    'X2':[23.88,23.96]
},columns=['time','X2'])  # to keep columns order
Run Code Online (Sandbox Code Playgroud)

它们可以与pandas.DataFrame.merge(s3 = pd.merge(s1,s2,how='outer'))或 pandas.merge(s3=s1.merge(s2,how='outer'))合并,但它不适用.相反,我希望合并的数据框替换内存中的s1.

python merge outer-join dataframe pandas

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

NLTK - 多标记分类

我正在使用NLTK来对文档进行分类 - 每个文档有1个标签,有10种类型的文档.

对于文本提取,我正在清理文本(标点删除,html标记删除,小写),删除nltk.corpus.stopwords,以及我自己的停用词集合.

对于我的文档功能,我查看所有50k文档,并按频率(frequency_words)收集前2k个单词,然后为每个文档识别文档中哪些单词也在全局frequency_words中.

然后我将每个文档作为hashmap传递{word: boolean}到nltk.NaiveBayesClassifier(...)中,我对文档总数的测试训练比率为20:80.

我遇到的问题:

  1. 这是NLTK的分类器,适用于多标记数据吗?- 我所看到的所有例子都更多地是关于2级分类,例如某些事物被宣告为正面还是负面.
  2. 这些文件应该具备一套关键技能 - 不幸的是,我没有这些技能所在的语料库.所以我采取了理解的方法,每个文件的字数不是一个好的文件提取器 - 这是正确的吗?每份文件都是由个人撰写的,因此我需要为文件中的个别变化留出让路.我知道SkLearn MBNaiveBayes处理字数.
  3. 是否有我应该使用的替代库,或者此算法的变体?

谢谢!

python nlp nltk document-classification

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