需要将多个csv文件写入新文件夹
我在这里找不到关于这个话题的任何信息,非常希望能得到大家的帮助!我对python还很陌生,但我有一些代码。
我有多个文件在一个文件夹里,想要读取它们,转置(也就是交换行和列),然后再把它们写入一个新的文件夹。我觉得我已经有了大部分的代码,但就是不知道怎么把所有的文件写回去。
这是我的代码:
path = 'C:\Users\Christopher\Documents\Clemson\Pleurodires\stability data\Es03\fixed\processed'
filenames = glob.glob(path + "/*.csv")
for filename in filenames:
dfs = (pd.read_csv(filename))
df = dfs.transpose()
df.to_csv('transposed\' + 'Tr_' + filename)
最后一行(我希望如此)应该把所有的新文件放到一个叫做'transposed'的文件夹里,并在原文件名的前面加上'Tr_'(比如如果原文件名是'hello',那么在'transposed'文件夹里它的名字就会变成'Tr_hello')。
但是当我运行上面的代码时,它显示工作正常,但文件在我电脑上根本找不到。我尝试了很多不同的方法来让df.to_csv工作,这是我目前最接近的结果。
编辑
感谢大家的帮助,我最终结合了Nanashi和EdChun的代码,得到了这个,效果很好:(最终的文件在正确的文件夹里,名字是Tr_filename)
path = r'C:\Users\Christopher\Documents\Clemson\Pleurodires\stability data\Es03\fixed\processed'
filenames = glob.glob(path + "/*.csv")
for filename in filenames:
short = os.path.split(filename)
newfilename = 'Tr_%s' % short[-1]
#print newfilename
dfs = (pd.read_csv(filename))
df = dfs.transpose()
df.to_csv(os.path.join('transposed', newfilename))
2 个回答
0
你的代码似乎有很多错误,试试下面这个:
import os
path = r'C:\Users\Christopher\Documents\Clemson\Pleurodires\stability data\Es03\fixed\processed'
filenames = glob.glob(path + "/*.csv")
for filename in filenames:
dfs = (pd.read_csv(filename))
df = dfs.transpose()
df.to_csv(os.path.join(r'transposed\Tr_', filename))
1
几点说明:
filenames = glob.glob(path + "/*.csv")
-- 如果我没记错的话,这里应该用反斜杠,而不是正斜杠。正斜杠主要是在Unix系统等地方用的,但在Windows系统中,路径名称是用反斜杠的。试着打印一下
filename
。这样你可以看到完整的路径。在df.to_csv
这一行,你实际上是在写入path + filename + transposed + Tr + filename
。你需要单独提取出具体的文件名(可以使用split
或者os
模块来实现)。
我在用Ubuntu,所以这些可能不完全适用,但我会这样做。
import pandas as pd
from glob import glob
path = "/home/nanashi/Documents/Python 2.7/Scrapers/Scrapy/itbooks"
filenames = glob(path + "/*.csv")
for filename in filenames:
specname = filename.split("/")[-1]
print filename
print specname
dfs = pd.read_csv(filename)
df = dfs.transpose()
df.to_csv("transposed/%s" % specname)
结果:
/home/nanashi/Documents/Python 2.7/Scrapers/Scrapy/itbooks/realestateau.csv
realestateau.csv
/home/nanashi/Documents/Python 2.7/Scrapers/Scrapy/itbooks/itbooks.csv
itbooks.csv
[Finished in 0.6s]
转置文件的截图:
如果这有帮助,请告诉我们。