【发布时间】:2015-07-16 18:07:59
【问题描述】:
我正在尝试保存满足特定条件的文件的名称。 我认为最简单的方法是编写一个简短的 Python 程序来导入和读取文件,检查是否满足条件,然后(假设满足)保存文件的名称。
我的数据文件只有两列四行,如下所示:
a: 5
b: 5
c: 6
de: 7
我想保存具有第 4 个数字([ 3:1]) 大于 8。我尝试使用numpy 导入文件,但它说它无法导入第一列中的字母。
我正在考虑尝试执行此操作的另一种方法是从命令行执行类似于 cat *.dat >> something.txt 的操作,但我不知道如何执行此操作。
我尝试编写的代码是:
import fileinput
import glob
import numpy as np
#Filter to find value > 8
#Globbing value datafiles
file_list = glob.glob("/path/to/*.dat")
#Creating output file containing
f = open('list.txt', 'w')
#Looping over files
for file in file_list:
#For each file in the directory, isolating the filename
filename = file.split('/')[-1]
#Opening the files, checking if value is greater than 8
a = np.loadtxt("file", delimiter=' ', usecols=1)
if a[3:0] > 8:
print >> f, filename
f.close()
当我这样做时,我收到一条错误消息,上面写着 TypeError: 'int' object is not iterable,但我不知道它指的是什么。
【问题讨论】:
-
请出示您询问的代码。
-
您好,欢迎来到 StackOverflow。请花一些时间阅读帮助页面,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples。
-
在这种情况下,您是否想要 7 在此示例数据中?
-
我提交了不起作用的代码,@ScottHunter。在这种情况下,我想要文件的名称,如果 7(那个位置的数字)大于或等于 8。