Python 帮助读取 csv 文件由于行结束而失败

2023-11-23

我正在尝试创建此脚本,该脚本将检查计算机主机名,然后在主列表中搜索该值以返回 csv 文件中的相应值。然后打开另一个文件并进行查找替换。我知道这应该很容易,但以前没有在 python 中做过这么多。这是我到目前为止所拥有的......

masterlist.txt  (tab delimited)
Name                 UID
Bob-Smith.local      bobs
Carmen-Jackson.local carmenj
David-Kathman.local  davidk
Jenn-Roberts.local   jennr

这是我迄今为止创建的脚本

#GET CLIENT HOST NAME
import socket
host = socket.gethostname()
print host

#IMPORT MASTER DATA
import csv, sys
filename = "masterlist.txt"
reader = csv.reader(open(filename, "rU"))

#PRINT MASTER DATA
for row in reader:
  print row

#SEARCH ON HOSTNAME AND RETURN UID



#REPLACE VALUE IN FILE WITH UID
#import fileinput
#for line in fileinput.FileInput("filetoreplace",inplace=1):
#   line = line.replace("replacethistext","UID")
#   print line

现在,它只是设置为打印主列表。我不确定是否需要解析该列表并将其放入字典或其他什么中。我真的需要弄清楚如何在第一个字段中搜索主机名,然后返回第二列中的字段。

在此先感谢您的帮助, 亚伦


UPDATE:我从 masterlist.txt 中删除了第 194 行和最后一行,然后重新运行该脚本。结果如下:

回溯(最近一次调用最后一次):
文件“update.py”,第 3 行,位于 对于 csv.DictReader 中的行(open(fname), 分隔符='\t'): 文件 “/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/csv.py”, 第 103 行,下一个 self.fieldnames 文件“/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/csv.py”, 第 90 行,在字段名中 self._fieldnames = self.reader.next() _csv.Error:在未加引号的字段中看到换行符 - 是否需要打开 文件处于通用换行模式?

当前使用的脚本是...

import csv
fname = "masterlist.txt"
for row in csv.DictReader(open(fname), delimiter='\t'):
  print(row)

第 194 行和最后一行中两次出现 '\xD5' 与该问题无关。

该问题似乎是 Python 2.6 csv 模块中的错误、误导性错误消息或不正确/模糊的文档。

在文件中,行以“\x0D”(在经典 Mac 传统中又名“\r”)结束。最后一行没有终止,但这与问题无关。

The csv.reader 的文档说“如果 csvfile 是文件对象,则必须在有影响的平台上使用‘b’标志打开它。”众所周知,它在 Windows 上确实有所不同。然而,在这种情况下,使用“rb”或“r”打开文件没有什么区别——仍然是相同的错误消息。

The csv.Dialect.lineterminator 的文档说“用于终止编写器生成的行的字符串。默认为 '\r\n'。注意:读取器被硬编码为将 '\r' 或 '\n' 识别为行尾,并忽略行终止符。这种行为将来可能会改变。”它似乎将 '\r' 识别为换行符,但不识别为行尾/字段尾。

错误消息“_csv.Error:在未加引号的字段中看到换行符 - 是否需要以通用换行模式打开文件?”令人困惑;它被识别为换行符,但它不会将换行符视为行尾(因此隐式地视为字段结束)。

似乎有必要以“rU”模式打开文件才能使其“工作”。目前尚不清楚为什么在通用换行模式下识别的相同“\r”会更好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 帮助读取 csv 文件由于行结束而失败 的相关文章

随机推荐

  • Artisan migrate 找不到驱动程序

    我正在尝试安装 Laravel 我已经安装了Xampp 但是当我尝试使用设置我的数据库时php artisan migrate我收到错误 Illuminate Database QueryException 找不到驱动程序 SQL sele
  • 如何将 boost bind 与成员函数一起使用

    以下代码导致 cl exe 崩溃 MS VS2005 我正在尝试使用 boost bind 创建一个函数来调用 myclass 的方法 include stdafx h include
  • 在 Windows 上更改 .gitconfig 位置

    默认情况下 在 Windows 上 Git 将全局 gitconfig 放置在c documents and settings user 我如何更改该位置以便 gitconfig 存储在c my configuration files 到底
  • Haskell:严格顺序执行外部命令

    如果我处于需要按顺序执行外部命令的情况 最好的解决方案是什么 例如 我有两个命令 制作快照 和 备份快照 在第一个完成之前 第二个无法开始 如果我将这两个命令有序地粘贴在 do 语法中 它们是否会依次执行 或者我是否必须手动检查并确保第一个
  • 无法从 xcode 7 推送到 gitlab

    升级到 Xcode 7 的一个令人不快的副作用是我无法再推送到我的 Gitlab 存储库 在过去的两年里 我一直在毫无问题地推送和拉取我的项目 所以我怀疑 Xcode 7 正在做一些不同的事情 我已经通过 Web 界面登录和注销来验证我的
  • 如何将粗体文本设置为Android Snackbar Action Text?

    我们可以使用 Snackbar 的 Action Text 设置颜色setActionTextColor如记录在https developer android com reference android support design wid
  • 如何在android画布上绘制一个实心三角形?

    所以我在 android 地图中使用以下代码在我的绘制方法中绘制这个三角形 paint setARGB 255 153 29 29 paint setStyle Paint Style FILL AND STROKE paint setAn
  • com.android.camera.action.CROP 替代方案?

    它似乎com android camera action CROP不可靠 因为它是内部 API 并非在所有设备上都可用 不过 我发现这个库非常实用 它在我的 Galaxy Nexus 上运行良好 我真的应该考虑实施自己的解决方案吗 我使用它
  • 设置与高度/宽度相关的图像 DPI C#

    我正在编写一个应用程序来将一些图像发送给第三方 并且图像必须为 200x200 DPI 该图像是位图 尺寸为 500 宽度和 250 高度 我第一次与第三方测试图像时 我的分辨率不正确 我只是用过image SetResolution 20
  • 如何使用 touchmove 使 mousemove 事件适用于触摸屏?

    我正在开发一个画布 JavaScript 通过 mousemove 事件你可以擦除背景 现在我正在尝试在触摸屏 移动设备 上获得相同的体验 如何同时为我的代码提供 mousemove 和 touchmove 事件 function Crea
  • 如何向 axlsx 中的单元格添加超链接?

    随着spreadsheet宝石 你可以跑Spreadsheet Link new http hyperlinkhere com Some words 制作一个电子表格 其中的单元格包含字符串 Some Words 并带有指向 的超链接 ht
  • 如何使用 C# SendKeys 以编程方式按下 Windows 键

    基本上我想在代码中模拟用户单击 Windows 键 我知道有 SendKeys 如果我得到了按键的句柄 它允许我将按键发送到窗口 但我不知道我需要获取什么句柄才能发送 Windows 按键命令 例如 Windows 键 L 读过一点后 似乎
  • Rails render_to_string 在部分视图中给出错误

    我正进入 状态ActionView MissingTemplate在代码下方使用带有部分视图的 render to string 方法时出错 bizz render to string partial gt biz new layout g
  • SQL Server Management Studio 无法连接

    我已经安装了 SQL Server Management Studio 2014 在 连接到服务器 窗口中 我选择服务器类型为 数据库引擎 服务器名称为 本地 但是当我尝试连接时 显示 n 错误 标题 连接到服务器 无法连接到 附加信息 与
  • Telnet IAC命令应答

    我正在尝试与套接字协商 telnet 连接 套接字正在工作 但服务器告诉我 login The 表示 255 253 1 255 253 31 255 251 1 255 251 3 我阅读了所有 RFC 文档 但我不明白我应该响应什么才能
  • 如何使用 CMake 在链接命令行末尾添加标志?

    我有一个 CMake 的问题无法检测到 pthread 作为一种解决方法 我尝试过 set CMAKE EXE LINKER FLAGS CMAKE EXE LINKER FLAGS lpthread 然而 这插入 lpthread在错误的
  • Java 8 偏移日期解析

    我需要解析以下格式的字符串2015 01 15 05 00UTC 中的 LocalDate 或其他 问题是下面的代码 System out println LocalDate parse 2015 01 15 05 00 DateTimeF
  • 独立数据库

    我目前正在 Net 中设计一个小型应用程序 过去我一直使用 MSAccess 作为独立数据库 可以随该程序一起提供 但我想知道在当今时代是否没有替代解决方案 可以轻松集成到 Net 应用程序中 对用户透明 并且在处理大量数据时可能具有更好的
  • 拖动和平移完成后获取中心坐标

    我想跟踪地图中心的坐标 到目前为止我一直在使用这个 On Drag End google maps event addListener map dragend function map center coords latitude html
  • Python 帮助读取 csv 文件由于行结束而失败

    我正在尝试创建此脚本 该脚本将检查计算机主机名 然后在主列表中搜索该值以返回 csv 文件中的相应值 然后打开另一个文件并进行查找替换 我知道这应该很容易 但以前没有在 python 中做过这么多 这是我到目前为止所拥有的 masterli