首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建一个csv文件,其中包含来自多个csv文件的数据

创建一个csv文件,其中包含来自多个csv文件的数据
EN

Stack Overflow用户
提问于 2022-11-06 15:13:17
回答 1查看 24关注 0票数 0

我有一个全是csv文件的文件夹,其中包含了实验中不同参与者的结果。我正在尝试创建一个包含目录中所有csv文件的大型csv文件。我使用listdir()来创建所有文件的列表,但是我无法打开这个列表中的各个文件。我想我需要循环每一个文件,但我一直无法弄清楚如何。

这是我到目前为止想出的代码。我得到了以下错误: FileNotFoundError: Errno 2,没有这样的文件或目录:'results_262.csv‘,因为循环似乎只读取文件变量中的一个文件,尽管应该有很多文件。

代码语言:javascript
运行
复制
from os import listdir
path = "results"
files = listdir(path)
print(files)
results = open("results.csv", "w")

data = []
for file in files:
    participant = open(f"{file}", "r")
    data.append(participant.readlines())

有人能帮忙吗?

EN

Stack Overflow用户

发布于 2022-11-06 15:56:52

您的问题是,listdir()返回文件名时没有它们的路径信息,因此需要将文件名附加到路径中。

代码语言:javascript
运行
复制
import os
...

for file in files:
    participant = open(os.join(path, file), "r"):
    ...

其他详情:

f"{file}"file是一样的。也就是说,open(file, "r")等同于open(f"{file}", "r"),但效率更高--不需要在变量中使用您已经拥有的值。

而且,你不能关闭你的文件。您应该在循环中添加participant.close(),或者更好地使用上下文管理器:

代码语言:javascript
运行
复制
for file in files:
    with open(os.join(path, file), "r") as participant:
        ...

with将文件句柄放在上下文管理器中,当您离开上下文管理器的作用域时,文件将自动关闭。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74337084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档