【问题标题】:python beginner questionspython初学者问题
【发布时间】:2010-07-26 22:52:03
【问题描述】:

我刚刚安装了python

我正在尝试运行此脚本:

import csv
reader = csv.reader(open("some.csv", "rb"))
for row in reader:
    print row

我在 Windows 上运行。

  1. 我必须将每一行单独输入到 python shell 中还是我可以将此代码保存到文本文件中然后从 shell 中运行它?
  2. some.csv 必须在哪里才能运行它?在同一个 c:\python26 文件夹中?
  3. 这段代码应该做什么?

【问题讨论】:

标签: python csv


【解决方案1】:
  1. 是的,您可以创建一个文件。交互式shell仅用于学习语法等,以及玩弄想法。不是用来写程序的。

    一个。请注意,脚本必须具有 .py 扩展名,例如 csvprint.py。要运行它,请输入 python csvprint.py。这将尝试从当前目录加载csvprint.py 并运行它。

  2. some.csv 文件必须在当前工作目录中,而不必(事实上,几乎不应该)在 Python 文件夹中。通常这将是您的主目录,或您设置的某种工作区,如 C:\work。不过,这完全取决于您。

  3. 在我自己不了解 csv 模块的情况下,我猜它会将文件中的 CSV 分隔值作为元组读取并在控制台上打印出来。

最后一点:编写此类逻辑的常用方法是从命令行获取输入,而不是对其进行硬编码。像这样:

import csv
reader = csv.reader(open(sys.argv[1], "rb"))
for row in reader:
    print row

然后像这样运行它:

python csvprint.py some.csv

在这种情况下,您可以将 some.csv 放在任何地方:

python csvprint.py C:\stuff\csvfiles\some.csv

【讨论】:

  • Re: 1a: Python 本身并不关心文件扩展名是什么,虽然我不确定 Windows 是否关心。
  • 顺便说一句,我得到 sys 没有定义
  • 此解决方案需要在顶部导入 sys。
  • Traceback(最近一次调用最后):文件“C:\pythonwork\csvread.py”,第 3 行,在 reader = csv.reader(open(sys.argv[1], "rb")) IndexError: 列表索引超出范围
【解决方案2】:

当您打开 IDLE 时,单击文件 > 新窗口。 (或按 Ctrl + N)

这将为您打开一个新窗口,它基本上只是一个带有 Python 语法高亮显示的文本编辑器。这是您可以编写程序并保存它的地方。要快速执行,请按 F5。

【讨论】:

  • 非常感谢,但是如何运行与 shell 不同的文件夹中的脚本?
  • 要在 IDLE 中打开并运行脚本,您可以转到它所在的文件夹并右键单击 >“使用 IDLE 编辑”。这将在文本编辑器中打开它,就像您在第一个示例中一样输入它。
【解决方案3】:
  1. 两者都可以!要从文本文件(例如“csvread.py”,但扩展名无关紧要)运行代码,请在命令提示符处键入:python csvread.py。确保您的 PATH 设置为包含 Python 安装目录。

  2. “some.csv”需要在当前目录中。

  3. 此代码打开一个专门用于读取 CSV 的 Python 文件描述符。阅读器文件描述符然后按顺序打印出 CSV 的每一行。查看文档以获取更详细的示例:http://docs.python.org/library/csv.html

【讨论】:

  • 非常感谢,但是如何运行与 shell 不同的文件夹中的脚本?
【解决方案4】:
  1. 将代码键入 *.py 文件,然后执行。
  2. 我认为该文件应该与您的 *.py 脚本位于同一文件夹中。
  3. 这会打开一个以逗号分隔值格式存储的文件并打印每一行的内容。

【讨论】:

    【解决方案5】:

    所有导入都会“一个模块中的 Python 代码通过导入它的过程来访问另一个模块中的代码。import 语句是调用导入机制的最常见方式,但它不是唯一的方式”。所谓的 CSV(逗号分隔值)格式是电子表格和数据库最常见的导入和导出格式。没有“CSV 标准”,因此格式由许多读写它的应用程序在操作上定义。缺乏标准意味着不同应用程序生成和使用的数据中经常存在细微的差异。这些差异会使处理来自多个来源的 CSV 文件变得很烦人。尽管如此,尽管分隔符和引号字符有所不同,但整体格式非常相似,因此可以编写一个可以有效操作此类数据的模块,从而向程序员隐藏读取和写入数据的细节。

    CSV 模块实现了以 CSV 格式读取和写入表格数据的类。它允许程序员说“以 Excel 首选的格式写入此数据”或“从 Excel 生成的此文件中读取数据”,而无需了解 Excel 使用的 CSV 格式的确切细节。程序员还可以描述其他应用程序理解的 CSV 格式或定义自己的专用 CSV 格式。您的所有代码都在循环遍历该文件。

    【讨论】:

    • 如果你是初学者,试试这个网站来帮助你学习。 [link](http://www.codecademy.com)
    猜你喜欢
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 2021-02-06
    • 1970-01-01
    • 2020-01-04
    • 2020-11-23
    • 2015-03-16
    • 2012-04-15
    相关资源
    最近更新 更多