Python 从现有文件中选择数据
我有一个以制表符分隔的文件,其数据顺序如下(大约2400行)—— 我想 (1) 取出名称和相应的MRP,并将其存储到新文件中 预期结果应如下(存储在新的excel文件或制表符分隔的文本文件中) 我开始做以下工作,但未能完成-Python 从现有文件中选择数据,python,Python,我有一个以制表符分隔的文件,其数据顺序如下(大约2400行)—— 我想 (1) 取出名称和相应的MRP,并将其存储到新文件中 预期结果应如下(存储在新的excel文件或制表符分隔的文本文件中) 我开始做以下工作,但未能完成- with open ('/path.txt') as f: for l in f: print l.strip().split("\t") 如果该文件以csv格式提供,则您可以使用熊猫: import pandas as pd df = read_
with open ('/path.txt') as f:
for l in f:
print l.strip().split("\t")
如果该文件以csv格式提供,则您可以使用熊猫:
import pandas as pd
df = read_csv('/path to file.csv', sep='\t')
slice = df[['AgentName','MRP']]
slice.to_csv('new_file.csv', index=False)
如果该文件以csv格式提供,则您可以使用熊猫:
import pandas as pd
df = read_csv('/path to file.csv', sep='\t')
slice = df[['AgentName','MRP']]
slice.to_csv('new_file.csv', index=False)
仅使用标准库:
仅使用标准库链接到:
链接到您当前使用的文件类型是什么<代码>.csv
.txt
?我们这里不做作业。@DirtyBit-我有制表符分隔的文件。(.txt)您当前使用的是什么类型的文件<代码>.csv.txt
?我们这里不做作业。@DirtyBit-我有制表符分隔的文件。(.txt)谢谢克拉苏,这很有帮助。我运行了代码,得到了以下输出。。。。。一个输出txt文件(以制表符分隔),标题为AgentName和MRP。缺少值(行)。我看到了以下内容-回溯(上次调用):csv_reader:File“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/csv.py”第107行中的文件“readfile.py”,第9行“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/csv.py”,第90行,在fieldnames self中。\u fieldnames=self.reader.next()_csv.Error:在未加引号的字段中看到新行字符-您需要以通用新行模式打开文件吗?@cyberbabble您可以用实际文件中的内容更新您的问题吗,前几行就足够了?@cyberbabble您还可以尝试在上面的代码中添加以下更改,看看它是否适合您:使用open('/path.txt',rU')作为\u fp,open('/new\u path.tsv',w')作为\u fp:csv\u reader=csv.DictReader(从\u fp,方言=csv.excel\u选项卡)
添加了数据文件和我的问题。以下是您建议我使用open('/inputfilepath.txt',rU')作为\u fp,open('/outputfilepath.txt',w')运行的更新至于“\u fp:csv”\u reader=csv.DictReader(从“\u fp,方言=csv.excel”\u选项卡)csv\u writer=csv.writer(到“\u fp,分隔符=”\t')csv\u reader:csv\u writer.writerow([row.get('AgentName'),row.get('MRP')]))谢谢krasu,这很有帮助。我运行了代码并获得了以下输出…..一个输出txt文件(以制表符分隔),标题为AgentName和MRP。缺少值(行)。我看到了以下内容-回溯(最近一次调用):文件“readfile.py”,第9行,在csv中的for行\u reader:file”/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/csv.py”,第107行,在下一个self.fieldnames文件“/System/Library/Frameworks/Python.framework/Versions/2.7/csv.py”,第90行,在fieldnames self中。\u fieldnames=self.reader.next()_csv.Error:在未加引号的字段中看到新行字符-您需要以通用新行模式打开文件吗?@cyberbabble您可以用实际文件中的内容更新您的问题吗,前几行就足够了?@cyberbabble您还可以尝试在上面的代码中添加以下更改,看看它是否适合您:使用open('/path.txt',rU')作为\u fp,open('/new\u path.tsv',w')作为\u fp:csv\u reader=csv.DictReader(从\u fp,方言=csv.excel\u选项卡)
添加了数据文件和我的问题。以下是您建议我使用open('/inputfilepath.txt',rU')作为\u fp,open('/outputfilepath.txt',w')运行的更新至于“\u fp:csv\u reader=csv.DictReader(from\u fp,dialogue=csv.excel\u tab)csv\u writer=csv.writer(to\u fp,delimiter='\t')csv\u reader:csv\u writer.writerow([row.get('AgentName'),row.get('MRP')]))谢谢amanb,这里是一个错误-导入错误:没有名为熊猫的模块。我有Python 2.7(在OSX上)使用pip install pandas
进行安装。@HashCode pandas的好处是,您可以在导出新表之前将其可视化。您可以在执行slice.to_csv()之前执行print(slice)
它将在您的控制台中显示一个排序表/IDEYes,这是正确的。pandas中还有许多其他功能,您可以根据需要加以利用。感谢amanb,这里有一个错误-ImportError:没有名为pandas的模块。我有Python 2.7(在OSX上)使用pip install pandas
安装。@HashCode pandas的好处是,您可以在导出新表之前将其可视化。您可以在执行slice.to\u csv()之前执行print(slice)
并且它将在您的控制台中显示一个排序表/IDEYes,这是正确的。pandas中还有许多其他功能,您可以根据需要使用这些功能。
import pandas as pd
df = read_csv('/path to file.csv', sep='\t')
slice = df[['AgentName','MRP']]
slice.to_csv('new_file.csv', index=False)
import csv
with open ('Project1.txt', 'rU') as from_fp, open('output.tsv', 'w') as to_fp:
csv_reader = csv.DictReader(from_fp, dialect=csv.excel_tab)
csv_writer = csv.writer(to_fp, delimiter='\t')
csv_writer.writerow(['AgentName', 'MRP'])
for row in csv_reader:
csv_writer.writerow([row.get('AgentName'), row.get('MRP')])