Python 从多个tsv/csv文件中获取标题
我有一个tsv文件的列表,我想在其中获取所有文件的列标题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
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)