複数のディレクトリにcsvファイルが分散しています。各csvファイルには、データを含む列が1つしかありません。私がやりたいことは、これらすべてのファイルを読み取り、各ファイルの列を csv ファイルに取り込むことです。最終的なcsvファイルには、ヘッダーとしてファイル名を持つ列があり、列データとして元のファイルからのそれぞれのデータがあります。
これは内部の私のディレクトリ構造です~/csv_files/ ls
ab arc bat-smg bn cdo crh diq es fo gd haw ia iu ki ksh lez lv mo na no os pih rmy sah simple ss tet tr ur war zea
ace arz bcl bo ce cs dsb et fr gl he id ja kk ku lg map-bms mr nah nov pa pl rn sc sk st tg ts uz wo zh
af as
各ディレクトリには 2 つの csv ファイルがあり、os.walk() 関数を使用することを考えましたが、os.walk の理解が間違っていると思います。そのため、現在私が持っているものは何も生成しません。
import sys, os
import csv
root_path = os.path.expanduser(
'~/data/missing_files')
def combine_csv_files(path):
for root, dirs, files in os.walk(path):
for dir in dirs:
for name in files:
if name.endswith(".csv"):
csv_path = os.path.expanduser(root_path + name)
if os.path.exists(csv_path):
try:
with open(csv_path, 'rb') as f:
t = f.read().splitlines()
print t
except IOError, e:
print e
def main():
combine_csv_files(root_path)
if __name__=="__main__":
main()
私の質問は次のとおりです。
- ここで何が間違っていますか?
- 別のファイルから 1 つの csv 列を読み取って、そのデータを列として別のファイルに追加できますか。これは、csv ファイルは行に依存しており、ここでは行間に依存関係がないためです。
最後に、このようなcsvファイルを取得しようとしています(ここに潜在的なヘッダーがあります)
ab_csv_data_file1, ab_csv_data_file2, arc_csv_data_file1, arc_csv_data_file2