我有一个名为“tableextract”的函数,它返回一个列表列表。你知道吗
调用的1个文件的“tableextract”函数输出示例ABC.txt文件地址:
[[' ', 'CITRIC ACID, ANHYDROUS', '5 mg', ''], [' ', 'NITROGEN', '5 mg', '21%'], [' ', 'PURIFIED WATER', '5 mg', '']]
现在,我有了一个文件目录,我想在其中运行这个函数并将所有值导出到一个csv中。对于目录中的每个文件,根据“tableextract”函数为该文件生成的列表的数量,我希望在csv中有一个新行,其中的文件名和列表列表中的每个列表项作为一个单独的列。你知道吗
预期输出(0,1,2,3列值由pandas生成,在逗号上拆分时。。sep=',')
Filename 0 1 2 3
ABC.txt CITRIC ACID, ANHYDROUS 5mg
ABC.txt NITROGEN 5 mg 21%
ABC.txt PURIFIED WATER 5 mg
现在,我写的代码是:
data = []
dir ='C:\\Users\\'
allfiles = os.listdir(dir)
files =[fnmatch for fnmatch in allfiles if fnmatch.endswith(".txt")]
for x in files:
output = tableextract(dir+x)
newout = x,output
data.append((newout))
df = pd.DataFrame(data)
df.to_csv('./Desktop/newgoofs7.csv', index=False, sep=',')
正在csv中以这种格式提供输出:
0903882.txt [[' ', 'HYPROMELLOSE', '1.765 mg', '1.765 %'], [' ', 'PE', '10.000 mg', '10.000 %'], [' ', 'RAMIPRIL', '10 mg', ''], [' ', 'RAMIPRIL', '10.000 mg', '10.000 %'], [' ', 'SODIUM STEARYL FUMARATE', '0.250 mg', '0.250 %']]
0903777.txt [[' ', 'HYPROMELLOSE', '0.441 mg', '0.441 %'], [' ', 'PE', '2.500 mg', '2.500 %'], [' ', 'RAMIPRIL', '2.5 mg', ''], [' ', 'RAMIPRIL', '2.500 mg', '2.500 %'], [' ', 'YELLOW FERRIC OXIDE', '0.100 mg', '0.100 %']]
其中一列有文件名,而“tablextract”函数的整个输出都在一列中。你知道吗
我希望代码的输出提供“Expected output:”格式中提到的输出。你知道吗
有什么帮助吗?你知道吗
必须输入“df=pd.数据帧(数据)“和”数据框到\u csv(…)”在“for”循环之后。以下是我的解决方案:
编辑: 另一种解决方案:
相关问题 更多 >
编程相关推荐