C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
sm7tix
Inlägg: 283 Blev medlem: 19 september 2013, 10:47:03
Ort: Kristianstad
Inlägg
av sm7tix » 29 juni 2018, 19:13:19
Jag försöker få till en funktion som gör första bokstaven efter en punkt till versal. Hittade följande kod som ser ut att göra det men det funkar inte på svenska tecken. Hur löser jag det? Denna funktion fixar även ? ! vilket är bra om det går att få igång den.
Kod: Markera allt
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
p = re.compile(r'((?<=[\.\?!]\s)(\w+)|(^\w+))')
def cap(match):
return(match.group().capitalize())
text = p.sub(cap, 'test av textfunktion. ny mening. ännu en! och mer.')
print text
resultatet
Test av textfunktion. Ny mening. ännu en. Och mer!
Tack på förhand
Stefan
guckrum
Inlägg: 1720 Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund
Inlägg
av guckrum » 29 juni 2018, 19:33:06
Python3 använder unicode som default:
sm7tix
Inlägg: 283 Blev medlem: 19 september 2013, 10:47:03
Ort: Kristianstad
Inlägg
av sm7tix » 29 juni 2018, 19:37:48
Mm kan så vara men jag har kodat i mer än tre år i python 2.7 och att konvertera allt det... Vet inte om det är möjligt.
guckrum
Inlägg: 1720 Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund
Inlägg
av guckrum » 29 juni 2018, 19:41:12
Prova byt typ till unicode.
sm7tix
Inlägg: 283 Blev medlem: 19 september 2013, 10:47:03
Ort: Kristianstad
Inlägg
av sm7tix » 29 juni 2018, 19:49:27
Ok. Som det brukar sägas "det finns inga dumma frågor..."
Hur? Jag är inte superbra på python i alla dess delar.
ger samma resultat.
sm7tix
Inlägg: 283 Blev medlem: 19 september 2013, 10:47:03
Ort: Kristianstad
Inlägg
av sm7tix » 29 juni 2018, 22:09:02
Har ni någon erfarenhet från att konvertera från python 2.7 till 3? Jag har en massa script och en flask app snurrande.
guckrum
Inlägg: 1720 Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund
Inlägg
av guckrum » 29 juni 2018, 22:47:30
Såhär?
Kod: Markera allt
>>> print('ännu en'.capitalize())
ännu en
>>> print(unicode('ännu en', encoding='utf-8').capitalize())
Ännu en
sm7tix
Inlägg: 283 Blev medlem: 19 september 2013, 10:47:03
Ort: Kristianstad
Inlägg
av sm7tix » 29 juni 2018, 22:56:56
Tack!
Den funkar. Hann göra en workaround som körde ett python3 script
Nu ska jag fixa det i min 2.7 också.
Stefan
sm7tix
Inlägg: 283 Blev medlem: 19 september 2013, 10:47:03
Ort: Kristianstad
Inlägg
av sm7tix » 29 juni 2018, 23:09:57
Funkar dock inte i mitt script med regex osv.
Får tänka tills i morgon. Sömn brukar lösa en del eller så vaknar jag upp i natt och har löst det
guckrum
Inlägg: 1720 Blev medlem: 19 juni 2012, 09:04:27
Ort: Lund
Inlägg
av guckrum » 30 juni 2018, 17:50:04
Har ni någon erfarenhet från att konvertera från python 2.7 till 3? Jag har en massa script och en flask app snurrande.
Jadå, det är lätt att underskatta hur mycket arbete det faktiskt är. Ett bra utgångsläge är att se till att kunna testa Allt.
Micke_s
EF Sponsor
Inlägg: 6741 Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö
Inlägg
av Micke_s » 30 juni 2018, 19:21:06
En lösning kan vara köra '.'join([x.capitalize() for x in str.split(".")])
sm7tix
Inlägg: 283 Blev medlem: 19 september 2013, 10:47:03
Ort: Kristianstad
Inlägg
av sm7tix » 30 juni 2018, 19:27:00
Micke_s skrev: En lösning kan vara köra '.'join([x.capitalize() for x in str.split(".")])
Testar. Just nu fungerar min workaround med att köra en subprocess med python 3.
.