【发布时间】: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