Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从现有文件中选择数据_Python - Fatal编程技术网

Python 从现有文件中选择数据

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_

我有一个以制表符分隔的文件,其数据顺序如下(大约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_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')])