Чтение файла csv из python
У меня были некоторые данные в файле excel. Я изменил файл на файл .csv и попытался написать код python для чтения файла.
Но я получаю некоторые непредсказуемые результаты. Мой код выглядит следующим образом:
INPUT_DIR = os.path.join(os.getcwd(),"Input")
OUTPUT_DIR = os.path.join(os.getcwd(),"Output")
print INPUT_DIR, OUTPUT_DIR
def read_csv():
files = os.listdir(INPUT_DIR)
for file in files:
file_full_name = os.path.join(INPUT_DIR,file)
print file_full_name
f = open(file_full_name,'r')
for line in f.readlines():
print "Line: ", line
def create_sql_file():
print "Hi"
if __name__ == '__main__':
read_csv()
create_sql_file()
Это дает очень своеобразный вывод:
C:\calcWorkspace\13.1.1.0\PythonTest\src\Input C:\calcWorkspace\13.1.1.0\PythonTest\src\Output
C:\calcWorkspace\13.1.1.0\PythonTest\src\Input\Country Risk System Priority Data_01232013 - Copy.csv
Line: PK**
Кто-нибудь знает об этой проблеме?
Ответы
Ответ 1
Сначала убедитесь, что вы преобразовали файл из Excel в csv, используя меню Save As
из Excel. Простое изменение расширения не работает. Результат, который вы видите, - это данные из собственного формата Excel.
После преобразования файлов используйте csv
модуль:
import csv
for filename in os.listdir(INPUT_DIR):
with open(os.path.join(INPUT_DIR,filename), dialect='excel-tab') as infile:
reader = csv.reader(infile)
for row in reader:
print row
Если вы хотите прочитать необработанные файлы Excel, используйте модуль xlrd
. Вот пример , который показывает, как читать файлы Excel.