我知道已经有很多关于python中反斜杠问题的资源,我读了很多,但没有一个对我有帮助。
我正在用Pandas处理大数据集。
我正在创建一个循环来迭代windows文件夹中的多个csv文件。然后进行几个数据操作。然后我要将每个不同的输入csv保存在不同的输出csv中。
本身,它的工作,但我想有一个干净的名称后的导出/保存。我不能这样做。
完整名称为"C:blabla blabladata number1Id 1Csv 1 - december 12-xx-14_processed_1.csv">
xx =月中的多日
代码如下:
for files in folder :
df = pd.read_csv(files, sep=';', low_memory=False, index_col=None)
file_name = str(files)
file_name = file_name.lstrip(r'C:blabla blabladata number1Id 1Csv 1 - Decembre\')
file_name = file_name.rstrip('_processed_1.csv')
我只想有"12-xx-14.csv"最后
所以我做了以下操作:
df.to_csv(r'C:blabla blabladata number1Reprocessed CSVDecember'+str(file_name)+'.csv',index=False)
保存到另一个文件夹用于项目管理。
我应该写上"12-xx-14.csv"作为输出…但我有&;2-xx-14.csv&;! 我的第一个"1"我真的不知道为什么要进垃圾箱??我猜这和反斜杠字符有关。但是,如果我删除最后两个反斜杠,则名称变为"01 - December12-xx-14"。我甚至无法抑制"01 - december"的情绪。如果没有最后一个" ",它将无法工作。
我目前正在升级到python 3.9来测试后缀/前缀,但与此同时我被困在这个
谢谢你!
我有一个解决这个问题的方法:
file_name = str(r"C:blabla blabladata number1Id 1Csv 1 - Decembre12-xx-14_processed_1.csv")
print('1',file_name)
file_name = file_name.replace("\", "^")
print('2',file_name)
file_name = file_name.replace("C:^blabla blabla^data number1^Id 1^Csv^01 - Decembre^","")
print('3',file_name)
file_name = file_name.replace("_processed_1.csv","")
print('4',file_name)
输出:
1 C:blabla blabladata number1Id 1Csv 1 - Decembre12-xx-14_processed_1.csv
2 C:^blabla blabla^data number1^Id 1^Csv^01 - Decembre^12-xx-14_processed_1.csv
3 12-xx-14_processed_1.csv
4 12-xx-14
——编辑——
a = r"C:blabla blabladata number1Id 1Csv 1 - Decembre12-xx-14_processed_1.csv"
print('5',a)
a = a[53:61]+a[73:79]
print('6',a)
输出:
5 C:\blabla blabla\data number1\Id 1\Csv\01 - Decembre\12-xx-14_processed_1.csv
6 12-xx-14.csv
绝对是一个更干净的版本