Sponsored Content
Top Forums Programming Appending a column in xlsx file using Python Post 302999620 by nans on Friday 23rd of June 2017 11:36:34 AM
Old 06-23-2017
1) When you tried my code with a bit of manipulation, did you ensure that it reads the file "scores.txt" and not "S12.txt" for the Excel file "S12.xlsx" ?
Yes. its only one file 'scores.txt' that is being used as a reference to get the scores into all excel sheets.

2) If you print dict_pos right before it is returned from the function "get_text_data", what do you see?
It does not return anything

I have pasted the code I used below

Code:
import os
from openpyxl import load_workbook
from datetime import datetime
import csv
  
# Variables
sheet_directory = r'/home/test'
text_directory = r'/home/test'
  
# Subroutines
def get_text_data(txt_filename):
    dict_pos = {}
    first_line = True
    with open('scores.txt') as txt_filename:
        tab_reader = csv.reader(txt_filename, delimiter='\t')
        for line in tab_reader:
            if first_line:
                first_line = False
                continue
                line = line.rstrip('\n')
                x = line.split('\t')
                dict_pos[x[0]] = x[3]
                #print dict_pos
                return dict_pos


def process_xl_sheets():
    for sheet_root, sheet_dirs, sheet_files in os.walk(sheet_directory):
        for sheet_file in sheet_files:
            if sheet_file.endswith('.xlsx'):
                dpos = get_text_data(sheet_file.replace('.xlsx', '.txt'))
                sheet_xl_file = os.path.join(sheet_root, sheet_file)
                wb = load_workbook(sheet_xl_file, data_only=True)
                ws = wb.get_sheet_by_name('raw_data')
                pos_col_no = 'F'
                score_col_no = 'V'
                row_no = 4
                cell = ws[pos_col_no + str(row_no)]
                while cell.value:
                    if str(cell.value) in dpos:
                        ws[score_col_no + str(row_no)] = dpos[str(cell.value)]
                    else:
                        ws[score_col_no + str(row_no)] = 'Unknown_' + datetime.now().strftime("%B") + datetime.now().strftime("%Y")
                        row_no += 1
                        cell = ws[pos_col_no + str(row_no)]
                        wb.save(sheet_xl_file)

                # Main section
process_xl_sheets()

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Appending a column in one file to the corresponding line in a second

It appears that this has been asked and answered in similar fashions previously, but I am still unsure how to approach this. I have two files containing user information: fileA ttim:/home/ttim:Tiny Tim:632 ppinto:/home/ppinto:Pam Pinto:633 fileB ttim:xkfgjkd*&#^jhdfh... (3 Replies)
Discussion started by: suzannef
3 Replies

2. Shell Programming and Scripting

Appending 'string' to file as first column.

Hi , I have the below file with 6 columns.I want to append 'File1' as the 1 column to the file. i have the sample code .It is not working . can u please correct this or make new one ..... awk 'print {'File1',$1,$2,$3,$4,$5,$6}' Source_File> Result_File Source_File:... (6 Replies)
Discussion started by: satyam_sat
6 Replies

3. Shell Programming and Scripting

appending column file

Hi all, I have two files with the same number of lines the first file is a.dat and looks like 0.000 1.000 1.000 2.000 ... the fields are tab separated the second file is b.dat and looks like 1.2347 0.546 2.3564 0.321 ... the fields are tab separated I would like to have a file c.dat... (4 Replies)
Discussion started by: f_o_555
4 Replies

4. UNIX for Dummies Questions & Answers

Appending date value mmdd to first column in file

Hi , I have a file with a running sequence number. I need to append a date value mmdd format on to the first column. for e.g.: The file contains records as 001 abc 002 cde 003 edf 004 fgh 005 hik The output should be 1111001 abc 1111002 cde 1111003 edf 1111004 ... (1 Reply)
Discussion started by: kalyansid
1 Replies

5. Shell Programming and Scripting

Appending new column to existing files

Hi, i want to add another column to existing files containing strings and need to have the final output as a csv file. i have quite a number of files, each with varying number of rows and i need to append the string "test" for all the valid rows for each file. my sample raw files looks like this... (8 Replies)
Discussion started by: ida1215
8 Replies

6. UNIX for Dummies Questions & Answers

Appending a column of numbers in ascending order to a text file

I have a text file where I want to append a column of numbers in ascending orders. Input: 57 abc 25 def 32 ghi 54 jkl Output:57 abc 57 abc 1 25 def 2 32 ghi 3 54 jkl 4 How do I go about doing that? Thanks! (11 Replies)
Discussion started by: evelibertine
11 Replies

7. Shell Programming and Scripting

Appending column to rows

Hi All, Input.txt KGO Id "003" .......... .......... Par "CPara" BIN RECGET Name "DIR_PATH" Prompt "DIR_PATH" END RECGET KGO ............ .......... ............... KGO Id "077" .......... .......... (7 Replies)
Discussion started by: unme
7 Replies

8. Shell Programming and Scripting

Appending = in particular column in csv file

Hi, I have a requirement to append = in particular row in csv file. Data in csv is as follow: row1,a,a,a row2,b,b,b row3,c,c,c row4,d,d,d csv should be modified at row3 and no. of columns are not fixed but rows are. output should be as: row1,a,a,a row2,b,b,b row3,=c,=c,=c... (2 Replies)
Discussion started by: Divya1987
2 Replies

9. Shell Programming and Scripting

Python soap and string to .xlsx conversion

Hi experts - I'm relatively new to python, but I have an requirement to automate getting a file from a WebLib server using an API. The file I'm requesting from this sever is an excel spreadsheet (.xlsx). I get a valid response back via an xml doc from the server. In this xml file I get... (8 Replies)
Discussion started by: timj123
8 Replies

10. UNIX for Beginners Questions & Answers

How to insert data into black column( Secound Column ) in excel (.XLSX) file using shell script?

Source Code of the original script is down below please run the script and try to solve this problem this is my data and I want it column wise 2019-03-20 13:00:00:000 2019-03-20 15:00:00:000 1 Operating System LAB 0 1 1 1 1 1 1 1 1 1 0 1 (5 Replies)
Discussion started by: Shubham1182
5 Replies
ost::Datetime(3)					     Library Functions Manual						  ost::Datetime(3)

NAME
ost::Datetime - The Datetime class uses a julian date representation of the current year, month, and day and a integer representation of the current time. SYNOPSIS
#include <numbers.h> Inherits ost::Date, and ost::Time. Public Member Functions Datetime (time_t tm) Datetime (tm *dt) Datetime (const char *str, size_t size=0) Datetime (int year, unsigned month, unsigned day, int hour, int minute, int second) Datetime () virtual ~Datetime () char * getDatetime (char *buffer) const time_t getDatetime (void) const bool isValid (void) const Datetime & operator= (const Datetime datetime) Datetime & operator+= (const Datetime &datetime) Datetime & operator-= (const Datetime &datetime) Datetime & operator+= (const Time &time) Datetime & operator-= (const Time &time) int operator== (const Datetime &) int operator!= (const Datetime &) int operator< (const Datetime &) int operator<= (const Datetime &) int operator> (const Datetime &) int operator>= (const Datetime &) bool operator! () const String strftime (const char *format) const Additional Inherited Members Detailed Description The Datetime class uses a julian date representation of the current year, month, and day and a integer representation of the current time. This is then manipulated in several forms and may be exported as needed. Author: Marcelo Dalmas mad@brasmap.com.br Integer based time class. Constructor &; Destructor Documentation ost::Datetime::Datetime (time_ttm) ost::Datetime::Datetime (tm *dt) ost::Datetime::Datetime (const char *str, size_tsize = 0) ost::Datetime::Datetime (intyear, unsignedmonth, unsignedday, inthour, intminute, intsecond) ost::Datetime::Datetime () virtual ost::Datetime::~Datetime () [virtual] Member Function Documentation char* ost::Datetime::getDatetime (char *buffer) const time_t ost::Datetime::getDatetime (void) const bool ost::Datetime::isValid (void) const Reimplemented from ost::Date. bool ost::Datetime::operator! () const Reimplemented from ost::Date. int ost::Datetime::operator!= (const Datetime &) Datetime& ost::Datetime::operator+= (const Datetime &datetime) Datetime& ost::Datetime::operator+= (const Time &time) Datetime& ost::Datetime::operator-= (const Datetime &datetime) Datetime& ost::Datetime::operator-= (const Time &time) int ost::Datetime::operator< (const Datetime &) int ost::Datetime::operator<= (const Datetime &) Datetime& ost::Datetime::operator= (const Datetimedatetime) int ost::Datetime::operator== (const Datetime &) int ost::Datetime::operator> (const Datetime &) int ost::Datetime::operator>= (const Datetime &) String ost::Datetime::strftime (const char *format) const Author Generated automatically by Doxygen for GNU CommonC++ from the source code. GNU CommonC++ Sat Jun 23 2012 ost::Datetime(3)
All times are GMT -4. The time now is 06:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy