[Python-de] Frage zu IDLE
Hermann Riemann
nospam.ng at hermann-riemann.de
Fr Jun 23 23:45:16 EDT 2017
Am 25.05.2017 um 21:58 schrieb Stefan Schwarzer:
> On 2017-05-25 17:51, Hermann Riemann wrote:> Die ersten beiden Zeilen sind dann
>>
>> #!/usr/bin/python3
>>
>> # -*- coding: utf-8 -*-
>> wobei ich vermute, das die 2.Zeile nicht mehr notwendig ist.
> genau:
>
> https://docs.python.org/3/whatsnew/3.0.html
>
> ...
> PEP 3120: The default source encoding is now UTF-8.
> ...
Danke, ich habe auf aktuellen Rechner diese Zeilen entfernt mit:
#!/usr/bin/python3
import os,sys
def no_utf(name):
if len(name)<5: return
n=name.rfind('.')
if n<0 or name[n+1:]!='py': return
try:
f=open(name)
l=f.readlines()
f.close()
except:
print("cannot read",name)
return
if len(l)<2: return
line1=l[0].rstrip()
line2=l[1].rstrip()
if line1!="#!/usr/bin/python3": return
f=open(name,"w")
for i,line in enumerate(l):
if i==1 and line.rstrip()=="# -*- coding: utf-8 -*-": continue
f.write("{}\n".format(line.rstrip()))
f.close()
def was_denn(name):
if os.path.islink(name):
name1=os.path.realpath(name)
if os.access(name,os.F_OK):
name=name1
else:
print("{} für {} existiert nicht".format(name1,name))
return
if os.path.isdir(name):
for inf3 in os.walk(name):
ordner_name=inf3[0]
for datei_name in inf3[2]:
no_utf("{}/{}".format(ordner_name,datei_name))
else: no_utf(name)
for arg in sys.argv[1:]:
if os.access(arg,os.F_OK):
was_denn(arg)
continue
print(arg+" gibt es nicht")
Hermann
der nicht nur zur Python einrücken manchmal folgendes Programm
verwendet:
#!/usr/bin/python3
import os, sys, string
filenames=[]
def pyr(filename):
if not os.access(filename,os.F_OK):
print(filename,"existiert nicht")
return
f=open(filename)
l=f.readlines()
f.close()
for i,t in enumerate(l):
l[i]=t.rstrip()
while len(l)>0 and len(l[-1])==0:
l.pop()
os.system("cp -p {} {}~".format(filename,filename))
first_blanks=level=0
f=open(filename,"w")
for z in l:
if len(z)<3 or z[:2]!="#$":
if first_blanks==0:
f.write(z)
elif first_blanks >0:
f.write(first_blanks*' ')
f.write(z)
elif len(z) < first_blanks:
print(-first_blanks,z)
f.write(z)
else:
f.write(z[-first_blanks:])
f.write('\n')
continue
c=z[2]
if c=='<':
level-=1
elif c=='>':
level+=1
elif c==')':
level=0
first_blanks=3*level
f.close()
for arg in sys.argv[1:]:
if arg[0]=='-': pass
filenames.append(arg)
for filename in filenames:
pyr(filename)
--
http://www.hermann-riemann.de
Mehr Informationen über die Mailingliste python-de