Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python在文件夹中打开-编辑-保存-循环csv文件_Python_Pandas_Csv - Fatal编程技术网

使用python在文件夹中打开-编辑-保存-循环csv文件

使用python在文件夹中打开-编辑-保存-循环csv文件,python,pandas,csv,Python,Pandas,Csv,我将收到一个包含100+个.csv文件的文件夹,我需要以同样的方式编辑它们。文件具有相同的结构。 文件夹如下所示: df1.csv df2.csv df3.csv ... df100.csv。我需要打开所有文件-编辑它们-然后将它们保存为“df1已编辑”、“df2已编辑”等等 根据每个df,代码都能完美运行。我不知道如何在每个文件中自动运行它并相应地保存它们。 这是我的密码: import pandas as pd df = pd.read_csv('df1.csv') [Edit step

我将收到一个包含100+个.csv文件的文件夹,我需要以同样的方式编辑它们。文件具有相同的结构。 文件夹如下所示: df1.csv df2.csv df3.csv ... df100.csv。我需要打开所有文件-编辑它们-然后将它们保存为“df1已编辑”、“df2已编辑”等等

根据每个df,代码都能完美运行。我不知道如何在每个文件中自动运行它并相应地保存它们。 这是我的密码:

import pandas as pd

df = pd.read_csv('df1.csv')

[Edit steps here]

df.to_csv("df1-edited.csv", index=None, encoding='utf-8-sig', decimal=',')

谢谢

为此,您可以使用标准库中与您的操作系统配合使用的模块

基本上,您需要找到文件夹中的所有
.csv
文件并对其进行迭代

让我们使用
pathlib
。这没有经过测试,但类似的东西应该可以工作:

from pathlib import Path
import pandas as pd

csv_folder = Path('path/to/csvs')

for file in csv_folder.glob('*.csv'): #create iteratable & iterate on it.
    df = pd.read_csv(file)
    # do stuff
    new_file_name = file.parent.joinpath(f"{file.stem}-edited.csv")
    df.to_csv(new_file_name, index=None, encoding='utf-8-sig', decimal=',')

为此,您可以使用标准库中与操作系统配合使用的模块

基本上,您需要找到文件夹中的所有
.csv
文件并对其进行迭代

让我们使用
pathlib
。这没有经过测试,但类似的东西应该可以工作:

from pathlib import Path
import pandas as pd

csv_folder = Path('path/to/csvs')

for file in csv_folder.glob('*.csv'): #create iteratable & iterate on it.
    df = pd.read_csv(file)
    # do stuff
    new_file_name = file.parent.joinpath(f"{file.stem}-edited.csv")
    df.to_csv(new_file_name, index=None, encoding='utf-8-sig', decimal=',')

非常感谢@Manakin。它确实有效,但只保存最后一个df。由于某些原因,它不能正常循环。有什么想法吗?@CCRo你把最后一行放在for循环之外了吗?解决了!问题是我的[do stuff]代码没有缩进。谢谢!回到这里,你能告诉我如何将新文件单独保存在新创建的文件夹中吗?非常感谢@Manakin。它确实有效,但只保存最后一个df。由于某些原因,它不能正常循环。有什么想法吗?@CCRo你把最后一行放在for循环之外了吗?解决了!问题是我的[do stuff]代码没有缩进。谢谢!回到这里,您能告诉我如何将新文件单独保存在新创建的文件夹中吗?