从C#目录中删除转义序列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从C#目录中删除转义序列相关的知识,希望对你有一定的参考价值。

我已经将我的C#项目中的当前工作目录写入.txt文件,以便我的python脚本可以读取它,问题是.txt文件中的文本包含转义序列字符

错误消息:WindowsError:[错误123]文件名,目录名或卷标语法不正确:'C: Users chris Dropbox Shared Visual Studio Projects GitHub Projects GitHub Group Project Beta GroupProject GroupProject bin Debug Material Lists n'

C#编写文本文件的代码:

            if (DEBUGGING)
        {               
            StreamWriter sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "//ScriptInformation.txt");
            sw.WriteLine(Directory.GetCurrentDirectory());
            sw.Close();
        }

Python脚本,尝试更改目录,以便删除某些文件:

import os
from sys import argv

script, filename = argv

myfile = open(filename)
newdir = myfile.readline()
os.chdir(newdir)
myfile.close()
print os.getcwd()

编辑:只需重新检查.txt文件,实际文本说:

C: Users chris Dropbox Shared Visual Studio Projects GitHub Projects GitHub Group Project Beta GroupProject GroupProject bin Debug Material Lists

答案

这是因为“ n”。刚刚使用.rstrip()方法在我的python脚本中剪切它。固定它。

另一答案

TextWriter.WriteLine写了一个字符串后跟一个行终止符。请改用TextWriter.Write

使用File.WriteAllText更容易:

File.WriteAllText(txtPath, content);

以上是关于从C#目录中删除转义序列的主要内容,如果未能解决你的问题,请参考以下文章

从 c# json 响应中删除双反斜杠

无法在 C# 中使用 Regex.Unescape 删除转义序列

从堆栈中弹出特定片段并删除其他片段

Android从后台堆栈中删除事务

C#学习笔记——需要注意的基础知识

[C#, 笔记] 启用虚拟终端处理 (使用 ANSI 转义序列前需启用)