使用动态命名导出多个 csv 文件
Exporting multiple csv files with dynamic naming
我在 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
我在 Jupyter 实验室,所以我可以单独下载每个文件,但我真的不想那样做。
g.to_csv('C:\Users\egagne\Downloads\'n+'stars'+'.csv'')
需要是
g.to_csv('C:\Users\egagne\Downloads\'+n+'stars.csv')
.
有两处错误 -- 反斜杠是转义字符,因此如果您在其后放置 '
,它将被视为字符串的一部分,而不是您预期的结束引号。使用 \
而不是单个 \
转义转义字符,以便您可以在字符串中包含反斜杠。
此外,您没有正确配对引号。 n
是一个变量名,但从您问题中突出显示的语法可以清楚地看出它是字符串的一部分。同样,您可以看到 stars
和 .csv
未作为字符串的一部分突出显示,结束的 ''
应该是出现问题的红旗。
编辑:我解决了导致问题的原因,但 Ami Tavory 的回答是正确的——尽管你知道这将在 windows 上 运行,但更好的做法是使用 os.path.join()
与目录名称,而不是在字符串中写出路径。如果您完全不确定 n 的类型,str(n)
也是正确的方法。
您可能混淆了整数和字符串,而且在文字中使用反斜杠无论如何都是危险的。考虑使用以下
import os
循环内部
f_name = os.path.join('C:', 'users', ' egagne', 'Downloads', str(n), 'stars.csv')
g.to_csv(f_name)
os.path.join
为您处理反斜杠。
我在 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
我在 Jupyter 实验室,所以我可以单独下载每个文件,但我真的不想那样做。
g.to_csv('C:\Users\egagne\Downloads\'n+'stars'+'.csv'')
需要是
g.to_csv('C:\Users\egagne\Downloads\'+n+'stars.csv')
.
有两处错误 -- 反斜杠是转义字符,因此如果您在其后放置 '
,它将被视为字符串的一部分,而不是您预期的结束引号。使用 \
而不是单个 \
转义转义字符,以便您可以在字符串中包含反斜杠。
此外,您没有正确配对引号。 n
是一个变量名,但从您问题中突出显示的语法可以清楚地看出它是字符串的一部分。同样,您可以看到 stars
和 .csv
未作为字符串的一部分突出显示,结束的 ''
应该是出现问题的红旗。
编辑:我解决了导致问题的原因,但 Ami Tavory 的回答是正确的——尽管你知道这将在 windows 上 运行,但更好的做法是使用 os.path.join()
与目录名称,而不是在字符串中写出路径。如果您完全不确定 n 的类型,str(n)
也是正确的方法。
您可能混淆了整数和字符串,而且在文字中使用反斜杠无论如何都是危险的。考虑使用以下
import os
循环内部
f_name = os.path.join('C:', 'users', ' egagne', 'Downloads', str(n), 'stars.csv')
g.to_csv(f_name)
os.path.join
为您处理反斜杠。