Ulli Horlacher <frams...@rus.uni-stuttgart.de> wrote: > Instead of calling a 7z subprocess with non-ASCII arguments I tried to > call it with a listfile: it starts with a "@" and contains the names of > the files to be packed into the arcive. It is a special 7z feature. > > New code: > > fileslist = archive + '.list' > flo = open(fileslist,'w') > for file in files: print(file,file=flo) > flo.close() > cmd = ['7za.exe','a','-tzip',archive,'@'+fileslist] > status = subprocess.call(cmd) > > > But with that I get a new error: > > File "fexit.py", line 959, in sendfile_retry > for file in files: print(file,file=flo) > UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position > 8: > ordinal not in range(128)
I found a partial solution: for file in files: print(file.encode('utf8'),file=flo) But this works only for files I get from Tk askopenfilename(), not for files from sys.argv[] Then I see: S:\>python fexit.py -a x.zip C:\Users\admin\_XöX.exe . files selected: "C:\Users\admin\_X÷X.exe" 2015-12-07 16:17:15 114 kB Traceback (most recent call last): File "fexit.py", line 2166, in <module> wexit(main()) File "fexit.py", line 260, in main status = sendfile_retry(files,recipient,comment) File "fexit.py", line 959, in sendfile_retry for file in files: print(file.encode('utf8'),file=flo) UnicodeDecodeError: 'ascii' codec can't decode byte 0xf6 in position 17: ordinal not in range(128) -- Ullrich Horlacher Server und Virtualisierung Rechenzentrum IZUS/TIK E-Mail: horlac...@tik.uni-stuttgart.de Universitaet Stuttgart Tel: ++49-711-68565868 Allmandring 30a Fax: ++49-711-682357 70550 Stuttgart (Germany) WWW: http://www.tik.uni-stuttgart.de/ -- https://mail.python.org/mailman/listinfo/python-list