要迭代文件名,您可以使用与回答类似的方法here https://stackoverflow.com/a/3964691/2327328,使用全局:
import glob
import os
os.chdir("/mydir")
for files in glob.glob("*.csv"):
print files
然后,要将成员名称添加到标题中,您可以逐行打印所有 csv 文件。如果该行是标题,则在标题所在的同一行打印成员名称。 (这不是真正的代码,但你可以明白这一点)
for files in glob.glob("*.csv"):
for lines in files:
if line == header:
print member,line
else:
print line
拆分 CSV 文件并仅使用成员名称(稍作修改,以便没有连字符)
'Votes-[member name]-(2010-2014)-[download-time].csv'.split('-')[1]
bash 解决方案更新:您可以保存此文本并从终端运行它(请参阅指示 https://stackoverflow.com/a/733901/2327328这里适用于 Mac)
生成 CSV 文件(非必需)
cat <<"EOF" > 1.csv
1,2,3
4,5,6
EOF
cat <<"EOF" > 2.csv
a,b,c
d,e,f
EOF
解析 CSV 文件- 此脚本获取所有 CSV 文件并将其文件名写入第一列。它还将它们放入一个文件中(请注意,我在 debian linux 上测试,而不是在 Mac 上测试)。
rm -f all.csv
for fyle in *.csv ; do
echo | awk -v f=$fyle '{ print f","$0 }' $fyle >> all.csv
done
exit 0
第二次更新:如果要删除重复的标头,shell 中最简单的方法是使用“grep -v”,它会选择所有不匹配的行。您可以选择仅存在于标头中的通用字符串。
head -1 all.csv > nohead.csv # add one header line
grep -v "header string" all.csv >> nohead.csv # add rest of rows, with no headers