Python 3.6 版本新增加的 f-string 语句非常简洁,其中可以直接在字符串中使用表达式,可以让代码写起来非常方便。
不过也要了解它的一些特性,不然就可能会报一个错误。
import re
file_name = 'F:\\02-data\\05-测风塔\\data_standar\\0224整年-Exported.csv'
print(f" {re.split('[\\\, .]', file_name)[-2]}(daily max)")
报错如下:
print(f" {re.split('[\\\, .]', file_name)}(daily max)")
File "<ipython-input-16-57222b8ebc98>", line 1
print(f" {re.split('[\\\, .]', file_name)[-2]}(daily max)")
^
SyntaxError: f-string expression part cannot include a backslash
好像也没有用错,确实应该这样写的,错误翻译过来是 f-string 的表达式中不能出现反斜杠
。
正常情况下
re.split('[\\\, .]', file_name)
Out[14]: ['F:', '02-data', '05-测风塔', 'data_standar', '0224整年-Exported', 'csv']
解决办法
1. 使用 format()
print(" {}_(daily max)".format(re.split('[\\\, .]', file_name)[-2]))
Out[14]: 0224整年-Exported_(daily max)
2. 外部计算
a = re.split('[\\\, .]', file_name)[-2]
print(f" {a}(daily max)")