Python Glob//的输出在Python代码中找不到错误所在
我有以下代码,它不会给出错误,但也不会产生输出 脚本用于执行以下操作:Python Glob//的输出在Python代码中找不到错误所在,python,output,glob,Python,Output,Glob,我有以下代码,它不会给出错误,但也不会产生输出 脚本用于执行以下操作: 该脚本采用由4个选项卡分隔的列组成的输入文件: 然后计算第1列中的唯一值和第4列中相应值的频率(其中包含两个不同的标记:C和D) 输出为3个制表符分隔的列,其中包含第1列的唯一值以及第4列中相应的值频率:第2列具有第1列中与标记C对应的字符串频率,第3列具有第1列中与标记D对应的字符串频率 以下是一个输入示例: algorithm-n like-1-resonator-n 8.1848 C algorithm
- 该脚本采用由4个选项卡分隔的列组成的输入文件:
- 然后计算第1列中的唯一值和第4列中相应值的频率(其中包含两个不同的标记:C和D)
- 输出为3个制表符分隔的列,其中包含第1列的唯一值以及第4列中相应的值频率:第2列具有第1列中与标记C对应的字符串频率,第3列具有第1列中与标记D对应的字符串频率
algorithm-n like-1-resonator-n 8.1848 C
algorithm-n produce-hull-n 7.9104 C
algorithm-n like-1-resonator-n 8.1848 D
algorithm-n produce-hull-n 7.9104 D
anything-n about-1-Zulus-n 7.3731 C
anything-n above-shortage-n 6.0142 C
anything-n above-1-gig-n 5.8967 C
anything-n above-1-magnification-n 7.8973 C
anything-n after-1-memory-n 2.5866 C
下面是所需输出的示例:
algorithm-n 2 2
anything-n 5 0
我使用的代码如下所示(其中将考虑评论中的所有建议):
我的直觉是问题来自“glob”函数。
但是,正如我之前所说:代码本身并没有给我一个错误——但它似乎也不会产生输出
有人能帮忙吗
我已经参考了文档,我似乎无法理解我做错了什么
有人能告诉我如何通过从
glob
输出结果来解决问题吗。由于我需要处理大量文件。关于您的原始代码,*lemma\u sense\u freqs*没有定义,因为它应该由函数sortAndCount()返回。你永远不会调用这个函数。
例如,代码中还有第二个函数,称为writeOutCV。定义它,然后在最后一行调用它
虽然您从未调用函数sortAndCount()(该函数应返回*lemma\u sense\u freqs*的值)。因此,出现了错误
我不知道您想要用这些代码实现什么,但是您肯定需要在某个特定点(在最后一行之前尝试)编写类似这样的代码
lemma_sense_freqs = sortAndCount(input_file)
这就是调用所需函数的方式,引理\u sense\u freqs将有一个关联的值,您不应该得到错误
我不能说得更具体,因为还不清楚您想要用该代码实现什么。但是,您目前遇到的只是一个基本问题(您定义了一个函数,但从未使用它来检索值lemma\u sense\u freqs)。尝试添加我建议的代码片段并使用它。
glob()
扩展现有文件名。那很好用。但是,output\u文件
字符串不会为您展开;使用字符串格式或连接来生成文件名;你在引理感知频率上有一个名称错误;这是函数sortAndCount
中的一个本地名称,您从未调用过它。当我使用一个单独的文件作为输入时,它似乎工作正常<代码>以open(“out\u ABC”、“rb”)作为打开的文件:
lemma\u sense\u freqs=sortAndCount(opened\u file)
output\u file=“count.out\u ABC.csv”
writeouttcsv(output\u file,lemma\u sense\u freqs)
在这种情况下,你是如何定义的lemma\u sense\u freqs的?我读到了你的例外,我不是Martijn Pieters的专家,这就是我请求帮助的原因。我已经根据你的建议修改了我的代码,它仍然给我一个错误。更新后的代码如下:folderPath=“Python_Counter”
#在这里声明glob.glob(os.path.join(folderPath,'out*')中输入文件的:
#打印输入文件,打开(“out*.”,“rb”)作为打开的文件:
lemma sense\u freks=sortAndCount(打开的文件)
写入TCSV(输出文件,引理感知频率)
感谢您的友好回复。我遵守了你的指示,现在我没有收到任何错误——正如我在修改后的问题中指出的那样。然而,什么也没有发生——没有错误,没有输出。
lemma_sense_freqs = sortAndCount(input_file)