如何将文件写入文件系统未编码的文件系统?
目前,撰写/myfolder/my file.csv
变为/myfolder/my%20file.csv
。我希望文件名为my file.csv
。
代码段:
rs = (grequests.get(u, headers=headers, stream=True, hooks={'response': addFilenameToResponse}) for u in urls)
sp_results = grequests.map(rs)
for res in sp_results:
byteStream = io.BytesIO(res.content)
result_df = pd.read_csv(byteStream, sep=",", encoding='utf8')
outputloc = downloads_folder + res.filePathFull + '/' + res.filename
outputloc = outputloc.replace('/', '\\') # switching for Windows 10
result_df.to_csv(outputloc, index=False, encoding=None)
...
我已尝试将to_csv
输出为encoding=None
,但这不起作用。除此之外,the docs似乎没有显示任何其他方法。
问题是,我们还有另一个传统工具,我们会从文件名中读取,工具会对编码的文件名进行重新编码,从而生成/myfolder/my%2520file.csv
(%
编码为%25
)。
答案 0 :(得分:1)
添加grequests
部分似乎澄清了问题(与pandas
无关)。
%20
is a url encoding for the space character。要删除它,您可以使用urllib.parse.unquote
。在Python3中:
from urllib import parse
...
outputloc = parse.unquote(outputloc)
result_df.to_csv(outputloc, index=False, encoding=None)