Reputation: 41
So I have code which works for one particular file in directory.
I want to make a loop which will do the following but for every .csv file in directory
1) Open file 2) Add one column 3) Save file to new location
My code
import pandas as pd
import os
import glob
plik = pd.read_csv('C:\Python\zrodlo\CSCO.csv', delimiter=";")
plik['Change'] = ((plik['Close'] - plik['Open'])/plik['Open']*100)
plik.to_csv('C:\Python\zrodlo\csv_nowe_pliki\ew_file.csv')
Lines which might come in handy for the loop. I did not know how to make good use of them
os.chdir('C:\Python\zrodlo')
print(os.getcwd())
for filename in os.listdir('C:\Python\zrodlo'):
if filename.endswith(".csv"):
print(filename)
2)
path = "C:\Python\zrodlo\*.csv"
for fname in glob.glob(path):
print(fname)```
Thank you for your input
EDIT, Question is what to put into last line for loop to save multiple files?
import pandas as pd
import os
import glob
path = "C:\Python\zrodlo\*.csv"
for fname in glob.glob(path):
print(fname)
plik = pd.read_csv(fname, delimiter=";")
plik['Change'] = ((plik['Close'] - plik['Open']) / plik['Open'] * 100)
plik.to_csv('C:\Python\zrodlo\csv_nowe_pliki\ew_file.csv')
EDIT, SOLUTION
import pandas as pd
import os
import glob
os.chdir('C:\Python\zrodlo')
print(os.getcwd())
for filename in os.listdir('C:\Python\zrodlo'):
if filename.endswith(".csv"):
print(filename)
plik = pd.read_csv('C:\Python\zrodlo\\'+filename, delimiter=";")
plik['Change'] = ((plik['Close'] - plik['Open'])/plik['Open']*100)
os.chdir('C:\Python\zrodlo\csv_nowe_pliki')
plik.to_csv(filename)
os.chdir('C:\Python\zrodlo')
Upvotes: 0
Views: 704
Reputation: 673
Is this what you want?
import pandas as pd
import os
import glob
os.chdir('C:\Python\zrodlo')
print(os.getcwd())
for filename in os.listdir('C:\Python\zrodlo'):
if filename.endswith(".csv"):
print(filename)
plik = pd.read_csv('C:\Python\zrodlo\'+filename, delimiter=";")
plik['Change'] = ((plik['Close'] - plik['Open'])/plik['Open']*100)
# You need to change the filename below otherwise you are rewriting every time after you created it
plik.to_csv(glob.glob("C:\Python\zrodlo\csv_nowe_pliki\ew_file.csv"))
Upvotes: 1