如何在python中使用fileinput.input获取每行的值
我有一个csv: mycsv.csv如何在python中使用fileinput.input获取每行的值,python,Python,我有一个csv: mycsv.csv name,last name yeison, smith lola, boa elmo, spitia anderson, exneider juan, ortega 我想显示每列的值。比如: print (line["word"]) print (line[0]) import fileinput with fileinput.input('mycsv.csv', inplace=True) as f: for line in f:
name,last name
yeison, smith
lola, boa
elmo, spitia
anderson, exneider
juan, ortega
我想显示每列的值。比如:
print (line["word"])
print (line[0])
import fileinput
with fileinput.input('mycsv.csv', inplace=True) as f:
for line in f:
#if f.lineno() == 2:
if line["name"] == "yeison":
print('german, ezequiel')
else:
print(line, end='')
如果您的数据不大,您可以逐行打开并解析文件,如下所示:
with open("mycsv.csv") as f:
lines = [line.strip('\n') for line in f]
for ln in lines:
abc = ln.split(',')
if(len(abc) > 1):
print(abc[0],abc[1])
否则,您可以使用
csv
模块有效地执行此操作您可以使用此简单代码读取cvs文件(熊猫)
您应该使用或模块,而不是
fileinput
@Nenri我这样做是因为我找不到更好的方法来替换我的csv行。如果我能找到并能使用更好的方法来替换CSV的“n”行,我会毫无疑问地这样做。看看Ayoub的答案,我会评论它是如何做到的,因为我找不到更好的方法来替换CSV的行。如果我能找到并使用更好的方法替换CSV中的“n”行,我会毫无疑问地这样做。如果您要替换CSV中的一行,那么您应该使用其他答案中建议的模块之一,我的最佳方法是加载CSV并从该数据创建一个全新的CSV,这比pandas
或csv
所能做的要慢得多。要替换一个“n”行,你可以为你想要的任何列做data['column'][n]=newValue
(这是为了回答OP评论中提出的问题),这段代码看起来更容易。什么是“专栏”?你建议这样使用吗?@unusuario例如,在ur csv中,如果你想将“anderson”修改为“christopher”dodata['name'][4]=“christopher”
例如data=pd.read_csv('filename.csv',name=['col0',col1',])print(data)@ayoubbenayaache,我可以在写的同时读csv吗?最后一个问题,我如何列出我的记录?
# Load the Pandas libraries with alias 'pd'
import pandas as pd
# Read data from file 'filename.csv'
# (in the same directory that your python process is based)
# Control delimiters, rows, column names with read_csv (see later)
data = pd.read_csv("filename.csv")
# Preview the first 5 lines of the loaded data
data.head()