Есть ли способ прочитать файл PSV, CSV или Excel в кадре данных в зависимости от типа файла ввода? - PullRequest
0 голосов
/ 16 апреля 2020

Я хочу, чтобы пользователь скрипта ввел путь и имя файла, который будет считан во фрейм данных. Пользователь может ввести что-то вроде directory1 \ test1.csv или directory1 \ test1.psv или directory1 \ test1.xlsx

Независимо от того, введут ли они psv, csv или xlsx, я хочу прочитать это в кадре данных с что-то вроде следующего logi c:

Если имя файла заканчивается на .psv, тогда df = pd.read_psv (), имя файла elif заканчивается на .csv, затем df = read_csv (), имя файла elif заканчивается на. xlsx затем df = pd.read_excel ().

Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Конечно, есть.

import os

# Get the file extension
ext = os.path.splitext(in_file)[1]

if ext == '.psv':
    df = pd.read_psv(in_file)
elif ext == '.csv':
    df = pd.read_csv(in_file)
elif ext == '.xlsx':
    df = pd.read_excel(in_file)
else:
    raise RuntimeError('File extension not recognized')
0 голосов
/ 16 апреля 2020

Вот что я пробовал:

#Specify the file directory where it is located
file_path = input("Enter file directory path:")

#Specify the file name where it is located
file_name = input("Enter file name:")

#number of rows to skip to read the column names
skip_rows = input("Skip n rows:")

input_file = file_path + file_name

if file_name.endswith('.csv'):
    df = pd.read_csv(input_file, skiprows = skip_rows)
elif file_name.endswith('.xlsx'):
    df = pd.read_excel(input_file, skiprows = skip_rows)
elif file_name.endswith('.psv'):
    df = pd.read_csv(input_file, sep = "|", skiprows = skip_rows)
else: 
    print('file format not supported')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...