I am tryin to parse a string from screeninfo to be useable in a csv file. here is my code
import csv from screeninfo import get_monitors with open('MultiMonitor.csv', 'w') as csvfile: csvwriter = csv.writer(csvfile) for m in get_monitors(): csvwriter.writerow([(str(m))])
here is the output:
Monitor(x=0, y=0, width=3840, height=2160, width_mm=345, height_mm=194, name='\\.\DISPLAY1')
This results in a one cell csv because it imports the whole string.
I am trying to parse it so that I can call x, y , width, height and display as individual cells.
so it would look similar to
monitor, x=0, y=0, x1=0, y1=0, displayname,
please and thank you.
Advertisement
Answer
I don’t understand why you convert to string str(m)
and try to parse it
You can get every value directly m.x, my.x, m.width, m.height, m.name
import csv from screeninfo import get_monitors with open('MultiMonitor.csv', 'w') as csvfile: csvwriter = csv.writer(csvfile) for m in get_monitors(): csvwriter.writerow(['monitor', m.x, my.x, m.width, m.height, m.name])
and if you want with x=
, y=
then you can format line as string and write without csvwriter
from screeninfo import get_monitors with open('MultiMonitor.csv', 'w') as f: for m in get_monitors(): text = f'monitor, x={m.x}, y={m.y}, width={m.width}, height={m.height}, name={m.name}' #print(text) f.write(text + 'n')