【问题标题】:Convert Powershell data clean up code to Python Code将 Powershell 数据清理代码转换为 Python 代码
【发布时间】:2020-07-13 15:42:57
【问题描述】:

我想将下面的 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

此代码的问题是查找和替换的方法。由于双引号,这在开始时创建了额外的列。然后有时在末尾有额外的列,因为有时末尾有双引号。这导致来自不同行的数据合并在一起。我没有发布这部分,因为我认为这对我的目标没有必要。更相关的似乎是将工作代码创建为更好的目标概念。这是无效的代码。

【问题讨论】:

  • 你有什么问题?您需要有人为您编写代码吗?
  • 无法在 python 中完成这项工作。我不太懂python。
  • 为了避免混淆@thomas,我没有发布我编写的 python 代码,因为它不起作用,我认为一些比我了解更多 python 的人将能够更优雅地编写它。这是我这段代码的python版本

标签: python powershell csv


【解决方案1】:

似乎这里没有人想回答问题,所以我在其他地方找到了解决方案。这是需要将逗号文件转换为管道分隔符的任何人的链接: https://www.experts-exchange.com/questions/29188372/How-can-I-Convert-Powershell-data-clean-up-code-to-Python-Code.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 2022-12-30
    • 2015-07-07
    • 1970-01-01
    相关资源
    最近更新 更多