HI,
I have a csv file with a single 'column'
Code
ABC
DEF
GHI
JKL
MNO
Is it possible to read and format this into a single string placing an ID before each row eg:
{1:ABC,2:DEF,3:GHI,4:JKL,5:MNO}
Thanks for any advice
I just observe that {1:ABC,2:DEF,3:GHI,4:JKL,5:MNO}
is not string.
(Oct-28-2019, 05:35 PM)fioranosnake Wrote: [ -> ]Is it possible to read and format this into a single string placing an ID before each row eg:
Yes,you should show what you have tried.
Here is a big hint,and it look more like a dictionary than a string
>>> data = '''\
... ABC
... DEF
... GHI
... JKL
... MNO'''.split('\n')
>>> data
['ABC', 'DEF', 'GHI', 'JKL', 'MNO']
>>> dict(zip(list(range(1,6)), data))
{1: 'ABC', 2: 'DEF', 3: 'GHI', 4: 'JKL', 5: 'MNO'}
There is also
>>> dict(enumerate(data, 1))
(Oct-28-2019, 07:23 PM)Gribouillis Wrote: [ -> ]There is also
>>> dict(enumerate(data, 1))
Hi, Thanks for this response. This only appears to format the first row (headings)... can it skip this and perform the formatting on all other rows..?
Post a sample on how the raw csv file look like without edit.
We can only go from what on what you did show in first post.
fioranosnake Wrote:I have a csv file with a single 'column'
Code
ABC
DEF
GHI
JKL
MNO
Hi,
If I open my txt file in notepad it looks as follows :
1231241231
1235135135
5457345345
4577865568
8654563848
and so on.
If I format the text file to look like :
1231241231,1235135135,5457345345,4577865568,8654563848
Then the solutions you have suggested work perfectly..
Do I need to carry out some formatting beforehand when the txt file is read?
Thanks again
fioranosnake Wrote:Do I need to carry out some formatting beforehand when the txt file is read?
No look straight forward if you file look like that.
from pprint import pprint
with open('numb.csv') as f:
#next(f) #If need to skip header
data = [i.strip() for i in f]
pprint(dict(enumerate(data, 1)))
Output:
{1: '1231241231',
2: '1235135135',
3: '5457345345',
4: '4577865568',
5: '8654563848'}
Hi, I there a straight forward way to write the pprint output to a text file?
Thanks
(Oct-29-2019, 09:29 PM)fioranosnake Wrote: [ -> ]Hi, I there a straight forward way to write the pprint output to a text file?
with open('numb.csv') as f,open('out.csv', 'w') as f_out:
#next(f) # If need to skip header
data = [i.strip() for i in f]
data = dict(enumerate(data, 1))
for k,v in data.items():
f_out.write(f'{k}: {v}\n')
Output:
1: 1231241231
2: 1235135135
3: 5457345345
4: 4577865568
5: 8654563848