[英]How to remove '_' from the output in python code?
我写了一个python代码,最终输出中带有'_'符号。 所以我想删除这个符号。
import re
from itertools import groupby
file = ["meta_data_02154.csv", "meta_data_021694.csv", "meta_data_loop_02365.csv", "meta_data_loops_0256365.csv", "output.csv"]
f = [list(i) for j, i in groupby(file, lambda a : re.split(r'\d*.csv$', a)[0])]
print(f)
for pattern in f:
#print(pattern)
print((re.split(r'\d*.csv$', pattern[0]))[0])
输出:
[['meta_data_02154.csv', 'meta_data_021694.csv'], ['meta_data_loop_02365.csv'], ['meta_data_loops_0256365.csv'], ['output.csv']]
meta_data_
meta_data_loop_
meta_data_loops_
output
需求输出:
[['meta_data_02154.csv', 'meta_data_021694.csv'], ['meta_data_loop_02365.csv'], ['meta_data_loops_0256365.csv'], ['output.csv']]
meta_data
meta_data_loop
meta_data_loops
output
使用rstrip()
import re
from itertools import groupby
file = ["meta_data_02154.csv", "meta_data_021694.csv", "meta_data_loop_02365.csv", "meta_data_loops_0256365.csv", "output.csv"]
f = [list(i) for j, i in groupby(file, lambda a : re.split(r'\d*.csv$', a)[0])]
print(f)
for pattern in f:
#print(pattern)
print((re.split(r'\d*.csv$', pattern[0]))[0].rstrip('_'))
使用rstrip()
val = "sad_"
print(val.rstrip('_'))
Output: sad
描述
rstip()
返回字符串的副本,其中删除了右尾字符。
另外,在这种情况下, print(val[:-1])
将得到相同的结果。
尝试使用模式r'_?\\d*.csv$'
。
例如:
import re
from itertools import groupby
file = ["meta_data_02154.csv", "meta_data_021694.csv", "meta_data_loop_02365.csv", "meta_data_loops_0256365.csv", "output.csv"]
f = [list(i) for j, i in groupby(file, lambda a : re.split(r'\d*.csv$', a)[0])]
print(f)
for pattern in f:
#print(pattern)
print((re.split(r'_?\d*.csv$', pattern[0]))[0])
您可以使用print((re.split(r'\\d*.csv$', pattern[0]))[0].rstrip('_')
但也可以使用更好的正则表达式和.search
代替split
。
我不确定您使用groupby
的目的。
import re
file = ["meta_data_02154.csv", "meta_data_021694.csv", "meta_data_loop_02365.csv", "meta_data_loops_0256365.csv", "output.csv"]
for pattern in file:
print(re.search(r'(.+)\d*.csv$', pattern).group(1))
输出
meta_data_02154
meta_data_021694
meta_data_loop_02365
meta_data_loops_0256365
output
您可以使用单线,仅拆分文件名:
file = ["meta_data_02154.csv", "meta_data_021694.csv", "meta_data_loop_02365.csv", "meta_data_loops_0256365.csv", "output.csv"]
filePatterns = set([f.rsplit('_', 1)[0].rsplit('.csv')[0] for f in file])
print(filePatterns)
打印:
{'meta_data_loops', 'meta_data', 'meta_data_loop', 'output'}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.