python - 如何使用python正确读取和修改文件

标签 python string text file-io

我正在尝试从文件中删除所有(非空格)空白字符,并将所有空格替换为逗号。这是我当前的代码:

def file_get_contents(filename):
  with open(filename) as f:
    return f.read()

content = file_get_contents('file.txt')
content = content.split
content = str(content).replace(' ',',')
with open ('file.txt', 'w') as f:
  f.write(content)

运行时,它将文件的内容替换为:

<built-in,method,split,of,str,object,at,0x100894200>

最佳答案

您遇到的主要问题是您正在分配方法 content.split内容,而不是调用它并分配它的返回值。如果打印出content分配后,它将是:<built-in method split of str object at 0x100894200>这不是你想要的。通过添加括号来修复它,使其成为方法的调用,而不仅仅是对其的引用:

content = content.split()

我认为解决该问题后您可能仍然遇到问题。 str.split返回一个列表,然后使用 str 将其调回字符串(在尝试用逗号替换空格之前)。这会给你方括号和引号,你可能不想要这些,而且你会得到一堆额外的逗号。相反,我建议使用 str.join方法如下:

content = ",".join(content) # joins all members of the list with commas

我不太确定这是否是您想要的。使用split将替换文件中的所有换行符,因此您最终会得到一行,其中包含许多用逗号分隔的单词。

关于python - 如何使用python正确读取和修改文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13150529/

相关文章:

java - HashMap.put() 正在覆盖不同键的现有项目

java - 如何在 JEditorPane 中编辑文本字体

c++ - 如何在 C++ 中使用 GLUT/OpenGL 绘制文本?

python - 高效的项目装箱算法(itertools/numpy)

java - 使用 Java 字符串替换方法产生与预期不同的结果,为什么?

C++:C 字符串集

python - 如何解析非结构化的表类数据?

python - 为什么 numpy 说这个矩阵*有时*是奇异的?

python 3.3 : struct. pack 不接受字符串

python - 根据numpy数组中一行中的重复值删除列