2017-06-01 98 views
0

我有一些简单的代码问题。 我有一列和数百行的csv文件。我想获得一个代码来读取csv的每一行并将其保存为单独的txt文件。重要的是,txt文件应该被命名为read line。读取csv行并将其另存为单独的txt文件,命名为一行 - python

例子: 1.Adam 2. Doroty 3.巴勃罗

会给我adam.txt,doroty.txt和Pablo TXT。文件。请帮忙。

+3

请告诉我们你有什么迄今为止尝试过。 – Silveris

+1

使用csv模块读取csv文件。 CSV模块将解决您的问题。检查这个链接https://docs.python.org/2/library/csv.html – Kondiba

+0

你也可以使用'pandas'来处理csv文件。 – Silveris

回答

1

这应该做你需要蟒蛇什么3.6

with open('file.csv') as f:  # Open file with hundreds of rows 
    for name in f.read().split('\n'): # Get list of all names 
     with open(f'{name.strip()}.txt', 'w') as s: # Create file per name 
      pass 
+0

因为只有1列,你可以直接迭代文件对象'在f'中的名字我不认为有必要使用'split()'。纠正我,如果我错了 –

+0

你是对的,@akashkarothiya由于该文件是一个.csv,如果事实上,该问题更改为连续的名称(丹尼尔,克里斯,杰森),这可以很容易地扩展该用例。 –

0

或者您可以使用内置的CSV库,以避免与解析CSV文件的任何并发症:

import csv 
with open('names.csv') as csvfile: 
    reader = csv.DictReader(csvfile) 
    for row in reader: 
     file_name ='{0}.txt'.format(row['first_name']) 

     with open(file_name, 'w') as f: 
      pass 
+0

在我根据自己的需求定制后,这种感觉非常好。但是,现在每次运行它时,都会出现以下错误:KeyError:'user_name'我100%确定在第一行中有一个带有“user_name”的列。 :-( – Forceme

+0

如果你的csv文件中没有标题行,你可以用默认列名初始化阅读器:reader = csv.DictReader(csvfile,fieldnames = ['user_name']) – brc

+0

只记得在我的例子中,我用“first_name “并根据您的评论我们使用”user_name“作为列名 – brc

相关问题