Python 从多个tsv/csv文件中获取标题

Python 从多个tsv/csv文件中获取标题,python,csv,Python,Csv,我有一个tsv文件的列表,我想在其中获取所有文件的列标题 with open(os.path.abspath('reference/file.tsv'), 'rU') as file: reader = csv.reader(file) row1 = next(reader) 目前,这个代码段只读取1个文件,其中我有一个需要解析的文件列表 dir_path = os.path.abspath('reference/') files = os.listdir(dir_path

我有一个tsv文件的列表,我想在其中获取所有文件的列标题

with open(os.path.abspath('reference/file.tsv'), 'rU') as file:
     reader = csv.reader(file)
     row1 = next(reader)
目前,这个代码段只读取1个文件,其中我有一个需要解析的文件列表

dir_path = os.path.abspath('reference/')
files = os.listdir(dir_path)

文件的名称列在
文件中。如何循环浏览文件列表并仅获取每个文件的列标题?

代码中的
文件
变量是
参考
文件夹的内容,表示该文件夹的所有文件和子文件夹。它们以字符串列表的形式返回,仅包含文件或子文件夹名称。这意味着您必须自己为路径添加前缀

例如:

dir_path = os.path.abspath('reference/')
files = os.listdir(dir_path)

for file in files:
    # Skip non-files
    if not os.path.isfile(file):
        continue

    with open(os.path.join(dir_path, file), 'rU') as f:
        reader = csv.reader(f)
        row1 = next(reader)
lines = []

with open(str(file.resolve()), 'rU') as f:
    lines.append(f.readline())

reader = csv.reader(lines)
for row in reader:
    # whatever you want to do with the parsed lines
使用
pathlib
模块的替代方法:

for file in Path('reference/').glob('*'):
    if not file.is_file():
        continue

    with open(str(file.resolve()), 'rU') as f:
        reader = csv.reader(f)
        row1 = next(reader)
阅读每个文件的第一行,将它们附加到列表中,然后将它们传递给
csvreader
,不是更好吗

例如:

dir_path = os.path.abspath('reference/')
files = os.listdir(dir_path)

for file in files:
    # Skip non-files
    if not os.path.isfile(file):
        continue

    with open(os.path.join(dir_path, file), 'rU') as f:
        reader = csv.reader(f)
        row1 = next(reader)
lines = []

with open(str(file.resolve()), 'rU') as f:
    lines.append(f.readline())

reader = csv.reader(lines)
for row in reader:
    # whatever you want to do with the parsed lines

代码中的
files
变量是
reference
文件夹的内容,表示该文件夹的所有文件和子文件夹。它们以字符串列表的形式返回,仅包含文件或子文件夹名称。这意味着您必须自己为路径添加前缀

例如:

dir_path = os.path.abspath('reference/')
files = os.listdir(dir_path)

for file in files:
    # Skip non-files
    if not os.path.isfile(file):
        continue

    with open(os.path.join(dir_path, file), 'rU') as f:
        reader = csv.reader(f)
        row1 = next(reader)
lines = []

with open(str(file.resolve()), 'rU') as f:
    lines.append(f.readline())

reader = csv.reader(lines)
for row in reader:
    # whatever you want to do with the parsed lines
使用
pathlib
模块的替代方法:

for file in Path('reference/').glob('*'):
    if not file.is_file():
        continue

    with open(str(file.resolve()), 'rU') as f:
        reader = csv.reader(f)
        row1 = next(reader)
阅读每个文件的第一行,将它们附加到列表中,然后将它们传递给
csvreader
,不是更好吗

例如:

dir_path = os.path.abspath('reference/')
files = os.listdir(dir_path)

for file in files:
    # Skip non-files
    if not os.path.isfile(file):
        continue

    with open(os.path.join(dir_path, file), 'rU') as f:
        reader = csv.reader(f)
        row1 = next(reader)
lines = []

with open(str(file.resolve()), 'rU') as f:
    lines.append(f.readline())

reader = csv.reader(lines)
for row in reader:
    # whatever you want to do with the parsed lines

我试了一下,效果很好

import os
import csv

dir_path = os.path.abspath('reference/')
files = os.listdir(dir_path)


for f in files:
    with open(dir_path  +'/'+f, 'rU') as file:
         reader = csv.reader(file)
         row1 = next(reader)
         print row1

我试了一下,效果很好

import os
import csv

dir_path = os.path.abspath('reference/')
files = os.listdir(dir_path)


for f in files:
    with open(dir_path  +'/'+f, 'rU') as file:
         reader = csv.reader(file)
         row1 = next(reader)
         print row1

请注意,这不包括子文件夹,将尝试将它们作为file.Works文件打开。现在,我想将结果保存为文件名作为键,列标题作为值。最好是编一本字典吗?还是一份清单?行1.append[f]=next(reader),因为列表不起作用……您应该有一个字典列表(带键和值)。可能这就是您要查找的:listdict=[]文件中的f:with open(dir_path+'/'+f,'rU')as file:reader=csv.reader(file)row1=next(reader)dict={f:row1}listdict.append(dict)请注意,这不考虑子文件夹,而是尝试将它们作为file.Works打开。现在,我想将结果保存为文件名作为键,列标题作为值。最好是编一本字典吗?还是一份清单?行1.append[f]=next(reader),因为列表不起作用……您应该有一个字典列表(带键和值)。可能这就是您要查找的:listdict=[]用于文件中的f:with open(dir_path+'/'+f,'rU')作为文件:reader=csv.reader(file)row1=next(reader)dict={f:row1}listdict.append(dict)