Преобразование кода очистки данных Powershell в код Python - PullRequest
0 голосов
/ 13 июля 2020

Я хотел бы преобразовать приведенный ниже скрипт Powershell в код Python.

  • Вот цель этого кода.
  • Код принимает в имени файла и расширении, разделенных запятыми.
  • Приведенный ниже код экспортирует файл как файл с разделителями каналов
  • Затем он удаляет запятые, которые существуют в данных
  • Наконец, он также удаляет двойные кавычки, используемые для уточнения данных.

В результате конечный файл будет разделен вертикальной чертой без двойных кавычек или запятых в данных. При выполнении этой работы я использовал этот порядок, потому что, если вы попытаетесь просто заменить двойные кавычки и запятые перед установкой каналов, столбцы и данные сломаются.

Param([string]$RootString,  [string]$Ext)   

$OrgFile = $RootString
$NewFile = $RootString.replace($Ext,"out")

Import-Csv $OrgFile -Encoding UTF8 | Export-Csv tempfile.csv -Delimiter "|" -NoTypeInformation
(Get-Content tempfile.csv).Replace(",","").Replace('"',"") | Out-File $NewFile -Encoding UTF8

Copy-Item -Force $NewFile $OrgFile
Remove-Item –path $NewFile -Force

Я получил за это балл, но. Не видел смысла выкладывать плохой код, который не работает. Вот моя версия неработающего кода.

for index in range(len(dfcsv)):
    filename = dfcsv['csvpath'].iloc[index]
    print(filename)
    print(i)
    with open(filename, 'r+') as f:
        text = f.read()
        print(datetime.now())
        text = re.sub('","', '|', text)
        print(datetime.now())
        f.seek(0)
        f.write(text)
        f.truncate()
        i = i + 1

Проблемы с этим кодом - это метод поиска и замены. Это создавало дополнительный столбец в начале из-за двойной кавычки. Затем иногда дополнительный столбец в конце, поскольку иногда в конце были двойные кавычки. Это привело к слиянию данных из разных строк. Я не публиковал эту часть, поскольку не думал, что это необходимо для моей цели. Более актуальным казалось поставить рабочий код для лучшего представления о цели. Вот нерабочий код.

1 Ответ

0 голосов
/ 06 августа 2020

Кажется, здесь никто не хотел отвечать на вопрос, поэтому я нашел решение в другом месте. Вот ссылка для тех, кому нужно преобразовать файл с запятой в разделитель каналов: https://www.experts-exchange.com/questions/29188372/How-can-I-Convert-Powershell-data-clean-up-code-to-Python-Code.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...