[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