在Python中读取文件时包含文件名

问题描述 投票:-2回答:2

我正在尝试使用以下代码在Python中读取文件:

with open(file) as fp:
    data = fp.read()

上面的脚本效果很好。然而,我正在尝试将文件名包含在data的输出中

我怎么能包括那个。

编辑:

添加具有预期结果的样本输出

电流输出:

col1,col2,col3
1,Prod_A,10
2,Prod_B,5

预期产量:

col1,col2,col3,filename
1,Prod_A,10,sales.csv
2,Prod_B,5,sales.csv
python filenames
2个回答
0
投票

阅读您的csv文件并添加新列:

import csv
import os

m, n = 'sales.csv', 'sales_temp.csv'

with open(m, newline='') as f:
    with open(n, 'w', newline='') as f_temp:
        w = csv.writer(f_temp)

        for r in csv.reader(f):
            w.writerow(r + ['filename']) if r[0] == 'col1' else w.writerow(r + [f.name])

os.remove(m)
os.rename(n, m)

0
投票

它可能很简单

data = {}

with open("test.txt") as fp:
   data['name'] = fp.name
   data['content'] = fp.read()

输出看起来像

{'name': 'test.txt',
 'content': '124512451245124512451245124512451245124512451245\n'}

但这实际上取决于你想要的data的结构。

编辑:根据反馈,上面的例子可以用列表重写

data = []

with open("test.txt") as fp:
   data.append(fp.name)
   data.append(fp.read())

输出看起来像:

['test.txt', '124512451245124512451245124512451245124512451245\n']
© www.soinside.com 2019 - 2024. All rights reserved.