首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python:为列a中的每个值打印b列中的值

Python:为列a中的每个值打印b列中的值
EN

Stack Overflow用户
提问于 2018-07-13 04:14:20
回答 3查看 174关注 0票数 2

我是python的新手,并试图在日常任务中使用它,以便更好地使用它。我希望能够从csv文件中获取值,并像下面的示例那样打印。(我能够从csv读取并将输出写入文件。只需要逻辑来做到这一点。)

代码语言:javascript
复制
Name,Item
Andy,Ball
Tom,Car
Zack,Watch

输出应为:

代码语言:javascript
复制
Andy has a Ball
Andy has a Car
Andy has a Watch
Tom has a Ball 
Tom has a Car ... etc.

*我的代码。当然,我编辑了实际的语句,这可能没有意义,但这就是代码。我确实创建了一个函数,并缩短了代码。

代码语言:javascript
复制
import csv

with open('../CSV_Files/File.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    f = open('../Output_Folder/File-1.txt' ,'w')
    for row in reader:
        f.write("Name is %s, network is %s\n" % (str(row['Name']), str(row['Network'])))
    f.close()

with open('../CSV_Files/File.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    f = open('../Output_Folder/File.txt','a')    
    for row in reader:        
        f.write("\n\zone is %s\n" % str(row['Zone']))
    f.close()

print ('Done')
EN

回答 3

Stack Overflow用户

发布于 2018-07-13 04:20:07

您的文件似乎不是csv文件。csv文件使用分隔符分隔每一列,如下所示:

代码语言:javascript
复制
Name,Item
Andy,Ball
Tom,Car
Zack,Watch

你的文件看起来是一个固定宽度的文件,特别是上面一行中来自"Car“的C如何与来自"Ball”的B完美地对齐。除非你用制表符作为分隔符,而且它们在问题中被转换为空格?

无论如何,如果它是一个用逗号分隔的csv文件,如我的示例所示:

代码语言:javascript
复制
with open('myfile.csv') as f:
    cf = csv.DictReader(f)
    for row in cf:
        print('{Name} has a {Item}'.format(**row))

如果用制表符分隔,只需使用

代码语言:javascript
复制
cf = csv.DictReader(f, delimiter='\t')

现在,固定宽度更难了,因为你必须知道宽度,就像这样:

代码语言:javascript
复制
with open('myfile.csv') as f:
    for line in f:
        line = line.strip()
        name = line[:5]
        item = line[6:]
        print('{} has a {}'.format(name, item))
票数 0
EN

Stack Overflow用户

发布于 2018-07-13 04:28:48

这只是一个简单的例子。注您必须设置分隔符,并使用.readline()跳过第一行,因为您的文件似乎有标题。

代码语言:javascript
复制
import csv

with open('C:\\file.csv', 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    csvfile.readline()
    for row in reader:
        print(str(row[0]) + ' has a ' + str(row[1]))
票数 0
EN

Stack Overflow用户

发布于 2018-07-13 04:32:06

假设您使用的是python 3.7以及要输出到同一目录中的内容

代码语言:javascript
复制
import csv
myfile = open("output.txt", "w")
with open('yourfile.csv', newline='') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=',')                           
    for row in spamreader:
        mystr = spamreader[i] + "has a "+ spamreader[i+1]
        myfile.write(mystr + "\n")
myfile.close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51313754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档