python - Python 代码编译,但没有发生任何事情
问题描述
我试图将一个目录中的多个 csv 文件附加到另一个目录中的单个文件中。当我运行此代码时,它似乎编译成功,但没有生效。每次运行后该combined.csv
文件保持为空。控制台中也没有错误。我在多个 IDE(vs code、pycharm 和 spyder)上尝试了这个。
import os
import glob
import pandas
def concatenate(indir="/directoryA/directoryB/csvFile_directoryC",
outfile="/directoryA/directoryB/combine.csv"):
os.chdir(indir)
filelist=glob.glob("*.csv")
dfList=[]
colnames=["c1","c2","c3","c4"]
for filename in filelist:
print(filename)
df=pandas.read_csv(filename,header=None)
dfList.append(df)
concatDf=pandas.concat(dfList,axis=0)
concatDf.columns=colnames
concatDf.to_csv(outfile,index=None)
解决方案
如果不是上面所说的(即您需要调用该函数),您实际上可能无法在该目录中找到任何 *.csv 文件。由于它是文件列表的 for 循环,因此如果文件列表为空,您仍然会留下 dfList,它是一个空列表,但对于 concat 上的 concatDf 仍然有效。
如果不是函数从未被调用过,请尝试从 os.listdir() 打印结果以查看其中有什么供 glob 检查,并检查您的文件列表是否不是空列表。
推荐阅读
- c - 无法根据用户字符串动态分配内存;realloc():下一个大小无效
- sql - 如何根据其他行有条件地选择行
- android - 如何调试 Google Directions API 错误?
- javascript - next.js:通过 next.config.js 配置主机名和端口的方式
- c# - 单例类触发事件只有一次
- flutter - 如何以原始 JSON 格式发送 http
- c# - 使用 EPPlus 应用公式将每行的两列中的值相乘
- rails-activestorage - 使用 rmagick 将 pdf 转换为图像会产生黑色背景图像
- javascript - 无法合并 json 响应数组
- debian - Opening the file explorer from wsl2 debian