【问题标题】:How does the code know when to split into a line?代码如何知道何时拆分为一行?
【发布时间】:2015-03-07 04:13:13
【问题描述】:

所以我正在学习如何使用 python 从 Web 下载文件,但被其中的一部分代码搞砸了。

代码如下:

from urllib import request

def download_stock_data(csv_url):
    response = request.urlopen(csv_url)
    csv = response.read()
    csv_str = str(csv)
    lines = csv_str.split("\\n")
    dest_url = r"stock.csv"
    fx = open(dest_url, "w")
    for line in lines:
        fx.write(line + "\n")
    fx.close()

我不太了解变量行中的代码。它如何知道何时在 csv 文件中拆分为新行?

【问题讨论】:

  • 它只是根据换行符分割输入数据,并将分割后的部分存储到一个名为lines的列表中。
  • 是的,我知道。但我不明白的是它是如何知道何时分线的。无需我编写任何代码,原始文件就会变得完美排列。
  • response.read() 读取整个文件并将内容存储到变量中。对读取的内容进行拆分。我现在不明白你所说的 when to split 是什么意思,你告诉 python 根据 \n 进行拆分
  • csv_str.split("\\n") 不会根据换行符进行拆分。
  • 根据原始csv中的信息将行完美分割。但是我们没有设置命令来说明在数据中的哪个位置进行相应的拆分。我们刚刚说 \n 分裂。但是哪个代码让 python 理解如何像我刚刚看到的原始 csv 文件一样完美地打印它。

标签: python url python-3.x download


【解决方案1】:

csv 文件本质上只是一个文本文件,数据以逗号分隔,但它们也包含换行符(通过换行符 ascii 字符)。

如果 csv 文件中的 line in lines: 有一个长的单逗号分隔行,则只会看到单行。

您可以在 notepad++ 或其他工具中打开它以查看原始 .csv 文件。 Excel会将逗号分隔的数据放在一个单元格中,将新行的数据放在一个新行中。

【讨论】:

    【解决方案2】:

    "\n" 是创建新行的指令的来源。

    在您提供的代码中,您告诉 python 根据“\n”拆分您收到的字符串。所以你得到一个分成几行的字符串列表。

    当您写入 fx 时,您通过附加“\n”将换行符插入到您写入的每一行中。如果你不这样做,那么你只会得到一条很长的线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 2016-10-28
      • 2013-07-08
      • 2017-06-16
      相关资源
      最近更新 更多