循环遍历CSV并提取前“N”个字符并存储为变量

w8ntj3qf  于 2022-12-06  发布在  其他
关注(0)|答案(2)|浏览(133)

我有一个csv文件,其中有一列。
该行是服务器的主机名,例如格式为DC 1-XX-hostname-001。
我想做的是提取前3个字符,并存储在一个变量或数组'dc'中,然后有一个变量或数组'vm',这将是csv的每一行的文本
到目前为止,我已经设法阅读csv并打印每一行

import csv

# opening the CSV file
with open('learning python/bulk vm test/vms.csv', mode ='r')as file:
# reading the CSV file
    csvFile = csv.reader(file)
    # read first 3Chars from each line
    dc = ""
    # row value is vm name
    vm = ""
    # fqdn is row value appending domain
    fqdn = vm + "io.local"
# displaying the contents of the CSV file
    for lines in csvFile:

        print(lines)
guz6ccqo

guz6ccqo1#

您可以使用www.example.com _csv读取CSV文件pandas.read

df = pd.read_csv('learning python/bulk vm test/vms.csv')
dc = df['col_name'].str[:3]
vm = df['col_name'].str + 'io.local'

希望能有所帮助!

mbskvtky

mbskvtky2#

IIUC,您正尝试从具有以下格式的文件开始:

DC1-XX-hostname-001
DC1-XX-hostname-002
DC1-XX-hostname-003
...

得到一个类似这样的结构:

[
  ('DC1', 'DC1-XX-hostname-001', 'DC1-XX-hostname-001.io.local'),
  ('DC1', 'DC1-XX-hostname-002', 'DC1-XX-hostname-002.io.local'),
  ...
]

为此,我认为不需要将其作为csv进行处理,因为它只有一列:

with open('myfile.csv') as fh:
    values = []

    # iterate over the file directly
    for vm in fh:
        vm = vm.strip('\n,') # strip off newlines and potential delimiter
        dc, fqdn = vm[:3], f"{vm}.io.local"
        # store the dc, vm name, and fqdn
        values.append((dc, vm, fqdn))

相关问题