Python 使用动态命名导出多个csv文件

Python 使用动态命名导出多个csv文件,python,python-3.x,pandas,jupyter,jupyter-lab,Python,Python 3.x,Pandas,Jupyter,Jupyter Lab,我用Python创建了大约200个csv文件,现在需要全部下载 我使用以下方法从单个文件创建文件: g = df.groupby("col") for n,g in df.groupby('col'): g.to_csv(n+'stars'+'.csv') 当我尝试使用同一语句导出到我的机器时,我得到一个语法错误,我不确定我做错了什么: g = df.groupby("col") for n,g in df.groupby('col'): g.to_csv('C:\Users\

我用Python创建了大约200个csv文件,现在需要全部下载

我使用以下方法从单个文件创建文件:

g = df.groupby("col")
for n,g in df.groupby('col'):
    g.to_csv(n+'stars'+'.csv')
当我尝试使用同一语句导出到我的机器时,我得到一个语法错误,我不确定我做错了什么:

g = df.groupby("col")
for n,g in df.groupby('col'):
    g.to_csv('C:\Users\egagne\Downloads\'n+'stars'+'.csv'')
错误:

  File "<ipython-input-27-43a5bfe55259>", line 3
    g.to_csv('C:\Users\egagne\Downloads\'n+'stars'+'.csv'')
                                                 ^
SyntaxError: invalid syntax
文件“”,第3行
g、 到_csv('C:\Users\egagne\Downloads\n+'stars'+'.csv'))
^
SyntaxError:无效语法
我在Jupyter实验室,所以我可以单独下载每个文件,但我真的不想这样做。

g.to\u csv('C:\Users\egagne\Downloads'n+'stars'+'.csv')
需要
g.to_csv('C:\\Users\\egagne\\Downloads\\'+n+'stars.csv')

有两件事是错误的——反斜杠是一个转义字符,因此如果在它后面加上一个
,它将被视为字符串的一部分,而不是您想要的结束引号。使用
\\
而不是单个
\
转义转义字符,以便可以在字符串中包含反斜杠

此外,您没有正确地对引号
n
是一个变量名,但从问题中突出显示的语法可以清楚地看出,它是字符串的一部分。类似地,您可以看到
星星
.csv
没有作为字符串的一部分突出显示,并且结束的
'
应该是出现问题的红色标志


编辑:我解决了导致问题的原因,但Ami Tavory的答案是正确的——尽管您知道这将在windows上运行,但更好的做法是使用带有目录名的
os.path.join()
,而不是用字符串写出路径<如果你根本不确定n的类型,code>str(n)也是正确的选择。

你可能混淆了整数和字符串,在文本中使用反斜杠是危险的。考虑使用以下

import os
圈内

    f_name = os.path.join('C:', 'users', ' egagne', 'Downloads', str(n), 'stars.csv')
    g.to_csv(f_name)

请注意反斜杠。

尝试类似于
g.to_csv('C:\Users\egagne\Downloads\'+str(n)+'stars.csv')的方法。