我找到了很多问题和答案,但似乎找不到适合我的问题。我需要根据列值拆分CSV。以下是我的工作表示例:
<option value="">Choose Year</option> ParentID
<option value="Civic1990">1990</option> Civic
<option value="CRX1990">1990</option> CRX
<option value="Prelude1990">1990</option> Prelude
<option value="Accord1990">1990</option> Accord
<option value="Prelude1991">1991</option> Prelude
<option value="Civic1991">1991</option> Civic
<option value="CRX1991">1991</option> CRX
<option value="Accord1991">1991</option> Accord
<option value="Prelude1992">1992</option> Prelude
<option value="Civic1992">1992</option> Civic
<option value="Accord1992">1992</option> Accord
<option value="Prelude1993">1993</option> Prelude
<option value="Civic1993">1993</option> Civic
<option value="CivicdelSol1993">1993</option> CivicdelSol
<option value="Accord1993">1993</option> Accord
<option value="Passport1994">1994</option> Passport
<option value="Accord1994">1994</option> Accord
<option value="Prelude1994">1994</option> Prelude
<option value="Civic1994">1994</option> Civic
<option value="CivicdelSol1994">1994</option> CivicdelSol
<option value="Passport1995">1995</option> Passport
<option value="Accord1995">1995</option> Accord
<option value="Odyssey1995">1995</option> Odyssey
<option value="Prelude1995">1995</option> Prelude
<option value="Civic1995">1995</option> Civic
<option value="CivicdelSol1995">1995</option> CivicdelSol
<option value="Passport1996">1996</option> Passport
<option value="Accord1996">1996</option> Accord
<option value="Odyssey1996">1996</option> Odyssey
<option value="Prelude1996">1996</option> Prelude
<option value="Civic1996">1996</option> Civic
我需要根据“ParentID”列进行拆分,并且只包含选项值。我目前正在使用PowerShell,但即使在排除数据类型时,在放置txt文件时服务器正在读取的输出txt文件中仍然存在格式。
这些选项值用于下拉列表,因此我需要格式化。
有没有办法在python或其他没有格式化的程序中执行此操作,以便网站可以读取txt文件?
这是我当前的PowerShell脚本:
$fullpath = "C:\Users\Ray\Desktop\YHP Revamp\New Cache 02-3\SubGroup\SubGroup.csv"
$path = Split-Path $fullpath -parent
$data = Import-CSV -Delimiter "," -Path $fullpath -Header "<option value="">Choose SubGroup</option>",ParentID
foreach ($group in $data | Group ParentID) {
$data | Where-Object {$_.ParentID -eq $group.name} |
select * -ExcludeProperty ParentID |
ConvertTo-Csv|
foreach {$_.Replace('#TYPE Selected.System.Management.Automation.PSCustomObject','')} |
foreach {$_.Replace('"<','<')} |
foreach {$_.Replace('>"','>')} |
foreach {$_.Replace('"">','">')} |
foreach {$_.Replace('=""','="')} |
foreach {$_.Replace('=">','="">')} |
Out-File "$path\$($group.name).txt"
}
答案 0 :(得分:1)
假设您的输入文件实际上是一个以制表符分隔的文本文件,我会像这样处理它:
Import-Csv $fullpath -Delimiter "`t" -Header Year, ParentID |
Select-Object -Skip 1 |
ForEach-Object {
$parent = $_.ParentID
$_.Year -replace '.*?"(.*?)".*', '$1' | Out-File "$path\$parent.txt" -Append
}
-Header Year, ParentID
和Select-Object -Skip 1
的组合是用更合理的东西替换第一列的实际标题。