Re: empty stdout (subprocess.run)
On Wednesday, January 19, 2022 at 11:14:28 PM UTC-5, cameron...@gmail.com wrote: > But I recommend you use shell=False and make: > > cmd = ["/usr/bin/transmission-remote", "--torrent", str(torrentno), "--info"] I like that. :-) -- https://mail.python.org/mailman/listinfo/python-list
Re: empty stdout (subprocess.run)
On Wednesday, January 19, 2022 at 11:08:58 PM UTC-5, Dennis Lee Bieber wrote: > Don't you need to provide for that %s? Perhaps > > cmd="/usr/bin/transmission-remote --torrent %s --info" % torrentno That works, thanks. -- https://mail.python.org/mailman/listinfo/python-list
empty stdout (subprocess.run)
I'm trying to run a shell command but the stdout is empty: import subprocess torrentno=8 cmd="/usr/bin/transmission-remote --torrent %s --info", str(torrentno) res=subprocess.run(cmd, shell=True, check=True, universal_newlines=True, capture_output=True) print(res) CompletedProcess(args=('/usr/bin/transmission-remote --torrent %s --info', '1'), returncode=0, stdout='', stderr='') -- https://mail.python.org/mailman/listinfo/python-list
=+ for strings
I tried: dt=+"{:02d}".format(day) but I got: dt=+"{:02d}".format(day) TypeError: bad operand type for unary +: 'str' This works: dt=dt+"{:02d}".format(day) Why can't I do the shortcut on strings? -- https://mail.python.org/mailman/listinfo/python-list
pickle and then object changes
Say an object like this exists: class test: a = b = You pickle it. You change the object definition to have a new field: class test a = b = c = You read the pickled object. Will it load but ignore the new field? That is what I want. -- https://mail.python.org/mailman/listinfo/python-list
help with regex
I want the last 1 I can't this to work: pattern=re.compile( (\d+)$ ) match=pattern.match( LINE: 235 : Primary Shelf Number (attempt 1): 1) print match.group() -- https://mail.python.org/mailman/listinfo/python-list
Re: regex line by line over file
On Thursday, March 27, 2014 1:32:03 AM UTC-4, Steven D'Aprano wrote: - are you mistaken about the content of the file? I can't help you with the first. But the second: try running this: # line2 and pat as defined above filename = sys.argv[1] with open(filename) as f: for line in f: print(len(line), line==line2, repr(line)) print(repr(pat.match(line))) which will show you what you have and whether or not it matches what you think it has. I expect that the file contents is not what you think it is, because the regex is matching the sample line. Good luck! -- Steven It should match this: (134, False, '\' SHELF-17:LOG_COLN_IP,SC,03-25,01-18-58,NEND,NA,,,:Log Collection In Progress,NONE:170035-6364-1048,:YEAR=2014,MODE=NONE\\r\\n\'') Is the \r\n on the end of the line screwing it up? -- https://mail.python.org/mailman/listinfo/python-list
Re: regex line by line over file
On Thursday, March 27, 2014 9:41:55 AM UTC-4, James Smith wrote: (134, False, '\' SHELF-17:LOG_COLN_IP,SC,03-25,01-18-58,NEND,NA,,,:Log Collection In Progress,NONE:170035-6364-1048,:YEAR=2014,MODE=NONE\\r\\n\'') Is the \r\n on the end of the line screwing it up? Got it. I needed an extra \ where I had 3 in the compile. It's kinda weird it didn't need the extra \ when I ran it manually from the shell. -- https://mail.python.org/mailman/listinfo/python-list
regex line by line over file
I can't get this to work. It runs but there is no output when I try it on a file. #!/usr/bin/python import os import sys import re from datetime import datetime #logDir = '/nfs/projects/equinox/platformTools/RTLG/RTLG_logs'; #os.chdir( logDir ); programName = sys.argv[0] fileName = sys.argv[1] #pattern = re.compile('\s*\\SHELF-.*,SC,.*,:\\Log Collection In Progress\\') re.M p = re.compile('^\s*\SHELF-.*,SC,.*,:\\\Log Collection In Progress\\\') l = 'SHELF-17:LOG_COLN_IP,SC,03-25,01-18-58,NEND,NA,,,:\Log Collection In Progress\,NONE:170035-6364-1048,:YEAR=2014,MODE=NONE' # this works :-) m = p.match( l ) if m: print( l ) # this doesn't match anything (or the if doesn't work) :-( with open(fileName) as f: for line in f: # debug code (print the line without adding a linefeed) # sys.stdout.write( line ) if p.match(line): print(line) The test file just has one line: SHELF-17:LOG_COLN_IP,SC,03-25,01-18-58,NEND,NA,,,:\Log Collection In Progress\,NONE:170035-6364-1048,:YEAR=2014,MODE=NONE -- https://mail.python.org/mailman/listinfo/python-list
Re: regex line by line over file
On Wednesday, March 26, 2014 11:23:29 PM UTC-4, James Smith wrote: I can't get this to work. It runs but there is no output when I try it on a file. #!/usr/bin/python import os import sys import re from datetime import datetime #logDir = '/nfs/projects/equinox/platformTools/RTLG/RTLG_logs'; #os.chdir( logDir ); programName = sys.argv[0] fileName = sys.argv[1] #pattern = re.compile('\s*\\SHELF-.*,SC,.*,:\\Log Collection In Progress\\') re.M p = re.compile('^\s*\SHELF-.*,SC,.*,:\\\Log Collection In Progress\\\') l = 'SHELF-17:LOG_COLN_IP,SC,03-25,01-18-58,NEND,NA,,,:\Log Collection In Progress\,NONE:170035-6364-1048,:YEAR=2014,MODE=NONE' # this works :-) m = p.match( l ) if m: print( l ) # this doesn't match anything (or the if doesn't work) :-( with open(fileName) as f: for line in f: # debug code (print the line without adding a linefeed) # sys.stdout.write( line ) if p.match(line): print(line) The test file just has one line: SHELF-17:LOG_COLN_IP,SC,03-25,01-18-58,NEND,NA,,,:\Log Collection In Progress\,NONE:170035-6364-1048,:YEAR=2014,MODE=NONE I tried the re.M in the compile and that didn't help. -- https://mail.python.org/mailman/listinfo/python-list