标签: import-csv

将CSV导入Sqlite时省略列

我的问题很简单.想象一下,您在CSV中有以下数据:

Name, Age, Gender
Jake, 40, M
Bill, 17, M
Suzie, 21, F
Run Code Online (Sandbox Code Playgroud)

导入上述CSV时是否可以排除Age变量?我目前的方法是简单地使用cutshell命令.

更新

iluvcapra对小型CSV有很好的答案.但是,对于非常大的CSV,这种方法效率很低.例如,假设上面的CSV非常大,30Gb可以说.仅加载所有Age数据以立即删除是浪费时间.考虑到这一点,是否有更有效的方法将列子集加载到sqlite数据库?

我怀疑最好的选择是使用shell命令cut来剔除不必要的列.这种直觉是否正确?使用shell命令将CSV文件预处理成更多sqlite友好版本是否常见?

谢谢!

sql unix sqlite shell import-csv

3
推荐指数
1
解决办法
1800
查看次数

PowerShell和表达式中的空间

我有一个名为CSV的字段.但是,我想将其重命名为Name.

我在下面有以下代码.但是,我不知道如何处理t和之间的空间N.

我尝试过使用引号和其他一些技巧,但到目前为止还没有用过.我需要做些什么才能获得价值?

Import-Csv .\Downloads\addata.csv | Select @{n="Name";e={$_.First Name}}
Run Code Online (Sandbox Code Playgroud)

powershell select import-csv

3
推荐指数
1
解决办法
420
查看次数

如何搜索每行的导入CSV单元格值

我正在尝试导入csv,搜索每行中的单元格值(列),然后查找并计算任何空值或空值.然后,如果计数达到13,则执行X.但是,当我运行此代码时,单元格/列值似乎是单个对象而不是每列的单个值?如何搜索行中的单个单元格值?

示例代码

$DataFileLocation = "\\Server\Output.csv"
$sheet = import-csv $DataFileLocation
$count = 0
foreach ($row in $sheet) {
    foreach ($column in $row) {
        Write-Host "Searching value: $column"
        if ($column -eq $null -or " ") {
            Write-Host "Found a blank!"
            $count++
        }
    }
    $count
    if ($count -eq 13) {
        Write-Host "Found match!" -ForegroundColor Red
    }
    $count = 0
}
Run Code Online (Sandbox Code Playgroud)

powershell import-csv

3
推荐指数
1
解决办法
355
查看次数

使用Powershell从CSV输入创建自定义安装字符串

我大多只是想指向正确的方向,所以我可以自己把它拼凑起来.我有相当数量的批处理文件脚本编制经验.我是PS菜鸟,但我认为PS对于下面的项目会更好.

我们有软件需要客户端ID作为安装字符串的一部分(以及交换机,usr/pass,其他交换机,日志记录路径等).

我已经创建了一个批处理文件(实际上有数百个),我PSEXEC在远程计算机上执行这个文件,但它很有用,但维护起来却很糟糕.每个中唯一的变化是客户端ID.

我正在尝试做的是使用带有2列的CSV作为输入(所以我只需要维护CSV):机器名称(如图所示%hostname%)和客户端ID.我想创建一个%hostname%与第1列中相应行匹配的脚本,读取同一行第2列中的数据,然后能够将其作为安装字符串中的变量调用.

EG如果我的CSV bobs-pc在第1列第6行中,则在以下安装字符串中插入第2行第6行(我们称之为0006)中的数据:

install.exe /client_ID=0006
Run Code Online (Sandbox Code Playgroud)

没有循环 由于我们运行的多个时区,我不希望它同时安装在所有机器上.

这样的事情对于我所拥有的许多项目都非常有用,所以我对学习更感兴趣,而不是让任何人为我编写.

我明白我应该用Import-Csv.我已经创建了一个示例csv,可以在PS中打印出某些字段.我需要的是脚本能够将这些字段作为变量插入安装字符串中.

powershell import-csv

2
推荐指数
1
解决办法
291
查看次数

从CSV加载两个数组

我有一个CSV文件,它有两列Employee和Manager,我想将它们导入两个变量,以便稍后在我的脚本中使用.但是,当我运行我的代码时,它只捕获CSV中的最后一个数据项,因为前一个数据项被覆盖.

$CSVFiles = Import-CSV "C:\T2\EmployeeManager.csv"

ForEach($CSVFile in $CSVFiles)
{
  $Employee = ($CSVFile.Employee); $Manager = ($CSVFile.Manager)
}
Run Code Online (Sandbox Code Playgroud)

arrays powershell import-csv

2
推荐指数
1
解决办法
97
查看次数

为什么Powershell Import-Csv无法在此CSV文件上正常工作?

我正在将此CSV文件导入到powershell中,但未导入标头和所有列。它仅获得第一列,但认为没有标题。我意识到第二行是空的,但这是软件如何使用需要处理的数据生成CSV文件的方式。

CSV档案:

#,Labels,Machine Name,System Description,IP,User Logged,Disk Free C
,,,,,,
6,"computers-PRO,Desktop,Office 2010,OS Windows 7,Update Adobe Reader",PRO-MEDASST,91-0-928,172.10.201.111,CHR\\jeniferc,6.3
7,Update Adobe Reader,RED,empty,172.10.201.5,,9.5
8,Update Adobe Reader,SIER,empty,172.10.201.5,,6.8
Run Code Online (Sandbox Code Playgroud)

Powershell代码:

$computerscsv = import-csv -Path "C:\C Drives Less than 10GB free.csv" #import the csv file
$computerscsv | Format-Table
pause
Run Code Online (Sandbox Code Playgroud)

Powershell输出:

WARNING: One or more headers were not specified. Default names starting with "H" have been used in place of any missing
 headers.

H1
--
6
7
8
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激。

csv import powershell import-csv

2
推荐指数
1
解决办法
595
查看次数

如何检索计算机的主要用户列表

如何将CSV文件的对象传递到Get-CMUserDeviceAffinity的DeviceName参数?

我有一份电脑清单.我想为此列表中的每台计算机生成一个主要用户列表.我正在使用PowerShell和SCCM模块,到目前为止,我已经尝试了一个单行程以及更多罗嗦的东西无济于事.

One-Liner失败:

Import-CSV C:\temp\computerlist.csv |  Get-CMUserDeviceAffinity -DeviceName $($_.Name)
Run Code Online (Sandbox Code Playgroud)

脚本失败:

$Computers = C:\computers.CSV
   ForEach ($Computer in $Computers) {
       Get-CMUserDeviceAffinity -DeviceName $_.Name
Run Code Online (Sandbox Code Playgroud)

结果都失败了:

Cannot validate argument on parameter 'DeviceName'. The argument is null or empty. Provide
an argument that is not null or empty, and then try the command again.
At line:1 char:77
+ ... p\computerlist.csv |  Get-CMUserDeviceAffinity -DeviceName $($_.Name)
+                                                                ~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Get-CMUserDeviceAffinity], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ConfigurationManagement.Cmdlets.Collections.C
   ommands.GetUserDeviceAffinityCommand
Run Code Online (Sandbox Code Playgroud)

powershell wmi list sccm import-csv

1
推荐指数
1
解决办法
3737
查看次数

如何使用正确的方法将CSV导入BigQuery上的表

我有一个python脚本执行一个gbq作业,将csv文件f加载到BigQuery上的表.所有数据写入一列,但我希望它被加载到每一列.我尝试自动检测,但它也没有帮助.我的csv:

id,first_name,username,last_name,chat_username,chat_id,forward_date,message_text
231125223~Just~koso~swissborg_bounty~-1001368946079~1517903147~test
481895079~Emerson~EmersonEmory~swissborg_bounty~-1001368946079~1517904387~picture
316560356~Ken Sam~ICOnomix~swissborg_bounty~-1001368946079~1517904515~Today 
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

from google.cloud.bigquery import Client
import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = '***.json'
os.environ['GOOGLE_CLOUD_DISABLE_GRPC'] = 'True'

from google.cloud import bigquery
dataset_name = 'test_temporary_dataset'
table_name='table_telega'
bigquery_client = bigquery.Client()
dataset = bigquery_client.dataset(dataset_name)
table = dataset.table(table_name)
#table.reload()
job_config = bigquery.LoadJobConfig()
job_config.source_format = 'text/csv'
job_config.skip_leading_rows = 1
job_config.autodetect = True

job_config.allow_jagged_rows=True
job_config.allow_quoted_newlines=True
job_config.fieldDelimiter='~'
with open('tele2.csv', 'rb') as source_file:
    #job = table.upload_from_file(source_file, source_format='text/csv')
    job=bigquery_client.load_table_from_file(source_file, table, job_config=job_config)

job.result()
Run Code Online (Sandbox Code Playgroud)

这就是我得到的: BigQuery的

如何逐列正确加载csv

python google-bigquery python-3.6 import-csv

0
推荐指数
1
解决办法
979
查看次数

Delimiter在一些单元格的文本中得出结论

我正在制作一个能够从CSV文件中读取大量数据的软件.CSV文件使用';' 作为分隔符.最近我发现某些单元格中的文本也是";".文件中的每个元组都是一个Object,因此该行中的每个单元格都是该Object的Attribute.我在C#中使用Split方法,它返回一个字符串数组.因为';' 在某些单元格中,我收到错误:数组超出范围.有没有办法摆脱这个错误而不删除';' 从一些细胞?

这样一个元组的示例:

小区1,小区2,小区3; stillCell3;小区4;

Cell3; stillCell3是一个单元格,但Split方法不知道.

c# csv delimiter import-csv

0
推荐指数
1
解决办法
100
查看次数

无法识别 Powershell 导入-csv

我正在尝试制作一个 bat 文件脚本,将 csv 的信息附加到另一个已经存在的 csv 文件中。我想使用 import-csv 命令,但我不断收到错误消息:

'import-csv' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我使用的是 Powershell 5.1,所以我尝试下载并使用 Powershell Core 6。这也不起作用。我在某处缺少图书馆吗?

我的代码:

import-csv "tinyTesterB.csv"

pause
Run Code Online (Sandbox Code Playgroud)

csv powershell batch-file import-csv

0
推荐指数
1
解决办法
729
查看次数