当前位置: 首页 > 面试题库 >

用Python读写文件

宋臻
2023-03-14
问题内容

我正在编写一个具有两个输入的脚本:

  1. 包含名称列表的文件,
  2. 不同的文件(可以为空或非空)

该脚本的目的是从第一个文件中获取名称,访问某个API并获取每个名称的信息,然后将该信息写入第二个文件。如果第二个文件已经包含信息,则脚本将读取已写入文件的最后一行,在第一个文件中找到该条目,然后从该条目开始。但是,在读写第二个文件时,我遇到了麻烦。

当我将第二个文件类型设置为“ r
+”,然后在file_two.read()上进行打印时,它显示了第二个文件的内容。当我在下一行进行另一次打印时,它显示文件为空。同样,当我将文件类型设置为“
a +”时,即使我可以清楚地看到文本文件中的信息确实存在,它也会两次将文件显示为完全空。有人知道发生了什么吗?

这是处理写作的代码段:

def write_to_file(filename, users):
    pages = range(0, len(users) - 100, 100)
    for page in pages:
        user_names = get_users(users[page: page+100])
        lines = [format_user(user) for user in user_names]
        output_text = '\n'.join(lines)
        with filename as output_file:
            output_file.write(output_text.encode('utf-8'))

这是调用上述函数的代码段。

file_one = args.file1
file_two = args.file2
users = read_names_automatic(file_one)
write_to_file(file_two, users)

问题答案:

当我将第二个文件类型设置为“ r
+”,然后在file_two.read()上进行打印时,它显示了第二个文件的内容。当我在下一行进行另一次打印时,它显示文件为空。

是的,这是预期的行为。文件指针指向末尾的文件末尾file_two.read(),因此任何进一步读取的尝试都会返回一个空字符串。例如,检查以下内容:

with open("test.txt") as f:
    print f.readline() # => prints the first line, sets file pointer to second line
    print f.read() # => prints everything from the second line on

要将文件指针重置为文件的开头,请执行以下操作:

with open("test.txt") as f:
    print f.read() # => prints entire file, sets file pointer to end of file
    f.seek(0) # => reset file pointer to beginning of file
    print f.read() # => prints entire file

同样,当我将文件类型设置为“ a +”时,即使我可以清楚地看到文本文件中的信息确实存在,两次也都将文件显示为完全空。

当您open("test.txt", "a+")将文件指针设置为文件末尾时,因此任何读取尝试都会产生一个空字符串。确实,这就是您可以 附加
到文件的原因。如果是file_two.seek(0)这样file_two.write(),则书面文字将添加到的开头file_two



 类似资料:
  • 本文向大家介绍利用python 读写csv文件,包括了利用python 读写csv文件的使用技巧和注意事项,需要的朋友参考一下 1、读文件 csv_reader把每一行数据转化成了一个list,list中每个元素是一个字符串。 2、写文件 读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。 可能遇到的问题:直接使用这种写法会导致文件每一行后面会多一个空行。 解决办法

  • 问题内容: 我在理解将文本写入文件和将文件写入文件时遇到了大脑故障(Python 2.4)。 因此,我在文件f2 中输入我最喜欢的编辑器。 然后: 我在这里不明白什么?显然,我缺少一些至关重要的魔术(或理性)。一种类型的文本文件可以正确转换? 在这里,我真正无法理解的是UTF-8表示法的意义所在,如果你实际上无法让Python识别它的话(如果它来自外部)。也许我应该只将JSON转储字符串,然后使用

  • 问题内容: 我有一个包含内容的文件 如何使用Python 阅读? 同样,如果我有 如何data使用Python 写入CSV文件? 问题答案: 以下是一些最小的完整示例,这些示例如何读取CSV文件以及如何使用Python编写CSV文件。 Python 2 + 3:读取CSV文件 Python 之后,的内容data_read是 Unicode和Python 2.X 如果要编写Unicode,则必须安装

  • 本文向大家介绍使用Python读写WAV文件(波形),包括了使用Python读写WAV文件(波形)的使用技巧和注意事项,需要的朋友参考一下 Python标准库中的wave模块是音频WAV格式的便捷接口。该模块中的功能可以将原始格式的音频数据写入对象之类的文件,并读取WAV文件的属性。 如同内置方法一样,文件以“写入”或读取模式打开,但具有wave模块中的功能 wave.open() 此功能打开一个

  • 本文向大家介绍 用Python读写csv,包括了 用Python读写csv的使用技巧和注意事项,需要的朋友参考一下 示例 CSV(Comma Separated Values)是一种用于存储表格数据(例如电子表格)的简单文件格式。这是如何在Python中读写数据的最小示例。 将数据写入CSV文件: 从CSV文件读取数据:            

  • 本文向大家介绍使用Python(aifc)读写AIFF和AIFC文件,包括了使用Python(aifc)读写AIFF和AIFC文件的使用技巧和注意事项,需要的朋友参考一下 aifc模块中的各种功能为读取和写入AIFF(音频交换文件格式)和AIFF-C文件提供了支持。AIFF格式用于将数字音频样本存储在文件中。其较新版本的AIFF-C具有压缩音频数据的能力 音频文件具有描述音频数据的参数数量。 采样

  • 本文向大家介绍Python读写文件方法总结,包括了Python读写文件方法总结的使用技巧和注意事项,需要的朋友参考一下 本文实例总结了Python读写文件方法。分享给大家供大家参考。具体分析如下: 1.open 使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。 注:不能把open语句放在try块里,因为当打开文件出现异常时

  • 我正试图打开一个存储在android设备上的文件,以便在上面读/写。 python应用程序运行在我的Windows计算机上,通过USB连接到Android设备。 但是我没有找到使用有效文件路径的方法,比如来访问我的文件。 它引发了一个错误: 没有这样的文件或目录 因此,我想知道如何使用Windows上的python应用程序通过USB访问此文件?提前谢谢,我希望它足够清楚。 编辑: 例如,我尝试了以