fp = open(item_file, encoding='UTF-8')
for line in fp:
lex = shlex.shlex(line)
lex.whitespace=','
lex.quotes='"'
lex.whitespace_split = True
itemlist=list(lex)
if len(itemlist) < 3:
continue
[itemid, title, genres] = itemlist[0],itemlist[1],itemlist[2]
['11','"American President, The (1995)"', 'Comedy|Drama|Romance\n']
数据:11,"American President, The (1995)",Comedy|Drama|Romance分割后理想情况:11"American President, The (1995)"Comedy|Drama|Romance实际单纯用split分割后11"American PresidentThe (1995)"Comedy|Drama|Romance...
python中字符串可以(且仅可以)使用成对的单引号、双引号、三个双引号(文档字符串)包围:
‘this is a book’
“this is a book”
“””this is a book”””
可在单引号包围的字符串中包含双引号,三引号等,但不能包含单引号自身(需转义)
‘this is a” book’
‘this is a”” book’
‘this is a””” book’
‘this is a\’ book’
也可多单引号中的双引号转义,但通常没什么必要和意义
‘this is a\” book’
同理,双引号中可包含单引号,但不能包含双引号以及由双引号构成的三引号
save_f=open('cellrelation.csv','w')
with open('./EUtranCellRelation.csv','r') as cellrelation:
for line in cellrelation:
s=shlex.shlex(line)
#print(s)
s.quotes='"'
Python-以逗号分割字符串且忽略引号中的逗号
要处理的问题
我们在读入txt、csv等数据时,经常会需要根据列名将读入的字符串进行分割。比如有如下的一个字符串存放在csv格式的文件中。
Q9UI32,“Glutaminase liver isoform,mitochondrial”,GLS2,FTSI_HAEIN,’’’,1574687
插入链接与图片
链接: link.
带尺寸的...
python中字符串的split能很方便的将字符串根据指定的分割符分割,但是如果不想分割引号中的分割符的话,split就无能为力了,写了一个小函数,忽略引号中的分割符
def my_split(s, sep=' ', ignore='"'):
"""以seq分割,重复的seq按一个计算,忽略ignore中的seq,返回开始、结束这样的索引数组"""
ignore_flag
```python
data = input("请输入若干个数据,用逗号分隔:")
data_list = data.split(",") # 将输入的数据按照逗号分隔转化为列表
num_list = [] # 用于存储数字类数据
for item in data_list:
num = float(item) # 尝试将字符串转化为浮点数
num_list.append(num)
except ValueError:
pass # 如果转化失败,则忽略该数据
if len(num_list) > 0:
avg_num = sum(num_list) / len(num_list)
print("数字类数据的平均值为:", avg_num)
else:
print("输入的数据中没有数字类数据!")
运行上述代码后,程序会提示用户输入若干个数据,用逗号分隔。例如,输入以下数据:
"1,2,3,4,5,a,b,c,d,e"
程序会将其中的数字类数据提取出来,计算它们的平均值并输出结果:
数字类数据的平均值为: 3.0