我有一个简单的应用程序,它应该每分钟向串行端口发送一个字节。但有时,由于某种奇怪的原因,它会冻结在 WriteFile() 函数中的某个位置。软件和硬件流量控制均已关闭。我在谷歌上搜索了一些有关从另一个线程执行的待处理读取操作的内容,但我相信这不是问题,因为我的应用程序有单线程。此外,CreateFile 的句柄看起来有效,因此该端口不应被任何其他应用程序使用。有人受过这样的苦吗?
一个真正的初学者问题.我有一个NSView子类,我在其中创建一个包含NSValues的NSMutableArray.当我想使用writetofile将数组写入文件时:atomatically:文件已创建,但它不包含可变数组确实包含的NSValues.有谁知道我如何成功地将这个可变数组写入文件?
谢谢
我正在尝试最基本的事情....用C ++编写文件,但是文件未写入。我也没有任何错误。也许我缺少明显的东西……还是什么?
我以为我的代码有问题,但是我也尝试了一个在网上找到的示例,但仍然没有创建文件。
这是代码:
ofstream myfile;
myfile.open ("C:\\Users\\Thorgeir\\Documents\\test.txt");
myfile << "Writing this to a file.\n";
myfile.close();
Run Code Online (Sandbox Code Playgroud)
我也尝试过事先手动创建文件,但是根本没有更新。
我正在运行Windows 7 64位(如果与此有关)。就像完全禁止文件写入操作并且没有显示错误消息或异常一样。
首先 - 我在Stackoverflow上爱你们!每个人都非常乐于助人!可悲的是,当我去回答问题时,他们对我来说太过分了:'(
我想将文本文件保存到文件夹 - 但不是绝对文件夹,例如我想将其保存到
{class location} /text/out.txt
因为程序正在不同的计算机上工作,所以位置会发生变化,所以我不能把C:// ect
我也知道我需要怀疑"\\" - 但这在我的尝试中不起作用
public void writeFile (int ID, int n) {
try{
String Number = Integer.toString(n);
String CID = Integer.toString(ID);
FileWriter fstream = new FileWriter("//folder//out.txt",true); //this don't work
BufferedWriter out = new BufferedWriter(fstream);
out.write(Number+"\t"+CID);
out.newLine();
out.close();
}//catch statements etc
Run Code Online (Sandbox Code Playgroud) 我希望我的服务器在节点退出时保存一些重要数据并在下次加载它们。
我尝试了这个问题的答案所建议的内容,但服务器似乎在能够写入文件之前关闭了。
这是我正在尝试的确切代码:
process.stdin.resume();
function exitHandler(options, err) {
if(!serverUp){return;}
serverUp = false;
fs.writeFile('server.txt', String(search_index),function (err) {
console.log("debug") // <-- This doesn't happen
process.exit();
});
}
//do something when app is closing
process.on('exit', exitHandler.bind(null,{cleanup:true}));
//catches ctrl+c event
process.on('SIGINT', exitHandler.bind(null, {exit:true}));
//catches uncaught exceptions
process.on('uncaughtException', exitHandler.bind(null, {exit:true}));
Run Code Online (Sandbox Code Playgroud) 我知道如何使用txt文件编写,numpy.savetxt()但我无法使用整数编写文件.我有以下代码:
new_picks = new_picks.astype(int)
np.savetxt(fname='newPicksData.txt', X=new_picks.astype(int))
Run Code Online (Sandbox Code Playgroud)
这就是我得到的矩阵的样子:
2.900000000000000000e+01 3.290000000000000000e+02 1.000000000000000000e+00
4.300000000000000000e+01 1.080000000000000000e+02 1.000000000000000000e+00
4.300000000000000000e+01 1.950000000000000000e+02 1.000000000000000000e+00
5.600000000000000000e+01 1.510000000000000000e+02 1.000000000000000000e+00
5.600000000000000000e+01 9.700000000000000000e+01 1.000000000000000000e+00
7.000000000000000000e+01 2.840000000000000000e+02 1.000000000000000000e+00
3.500000000000000000e+01 3.170000000000000000e+02 1.000000000000000000e+00
5.400000000000000000e+01 2.110000000000000000e+02 1.000000000000000000e+00
6.400000000000000000e+01 1.180000000000000000e+02 1.000000000000000000e+00
5.400000000000000000e+01 3.700000000000000000e+01 1.000000000000000000e+00
1.300000000000000000e+01 1.950000000000000000e+02 1.000000000000000000e+00
1.300000000000000000e+01 1.680000000000000000e+02 1.000000000000000000e+00
1.300000000000000000e+01 2.780000000000000000e+02 1.000000000000000000e+00
4.900000000000000000e+01 2.200000000000000000e+01 1.000000000000000000e+00
4.900000000000000000e+01 1.040000000000000000e+02 1.000000000000000000e+00
4.900000000000000000e+01 7.500000000000000000e+01 1.000000000000000000e+00
5.400000000000000000e+01 2.610000000000000000e+02 1.000000000000000000e+00
5.400000000000000000e+01 2.600000000000000000e+02 1.000000000000000000e+00
5.400000000000000000e+01 1.150000000000000000e+02 1.000000000000000000e+00
5.400000000000000000e+01 5.400000000000000000e+01 1.000000000000000000e+00
1.300000000000000000e+01 5.400000000000000000e+01 1.000000000000000000e+00
4.900000000000000000e+01 5.400000000000000000e+01 1.000000000000000000e+00
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是这样的:
29 329 1
43 …Run Code Online (Sandbox Code Playgroud) 我遇到了使用事件驱动方法进行串行端口通信的 win32 编程问题。我将我的通信句柄创建为:
hComm = CreateFile(lpszCommName, GENERIC_READ | GENERIC_WRITE, 0,
NULL, OPEN_EXISTING, 0, NULL);
Run Code Online (Sandbox Code Playgroud)
我将 CommTimeouts 设置为:
commTimeout.ReadIntervalTimeout = MAXWORD;
commTimeout.ReadTotalTimeoutConstant = 0;
commTimeout.ReadTotalTimeoutMultiplier = 0;
commTimeout.WriteTotalTimeoutConstant = 0;
commTimeout.WriteTotalTimeoutMultiplier = 0;
Run Code Online (Sandbox Code Playgroud)
我为 ReadFile 创建了一个线程,如下所示:
SetCommMask(hComm, EV_RXCHAR);
while (isConnected)
{
if (WaitCommEvent(hComm, &dwEvent, NULL)) //If i comment out this block my write file will work fine
{
ClearCommError(hComm, &dwError, &cs);
if ((dwEvent & EV_RXCHAR) && cs.cbInQue)
{
if (!ReadFile(hComm, str, cs.cbInQue, &read_byte, NULL))
/* Process error*/
else if (read_byte)
/* …Run Code Online (Sandbox Code Playgroud) 我有一个大小为(flatten3、3、19、19)的数组,我将其用于获取大小为3249的数组。
我不得不将这些值与其他一些数据一起写入文件,因此我做了以下操作以将数组转换为字符串。
np.array2string(arr.flatten(), separator=', ', suppress_small=False)
但是,当我写完文件后检查文件的内容时,我注意到我,... ,在数组中间有如下内容
[ 0.09720755, -0.1221265 , 0.08671697, ..., 0.01460444, 0.02018792,
0.11455765]
如何获取包含所有元素的数组字符串,以便潜在地将所有数据保存到文件中?
我是这里的新手,总体来说是Python的新手,所以请原谅任何格式问题和其他问题。我是一名物理学家,我有一个参数模型,我想在其中迭代模型的一个或多个参数值(可能在 MCMC 设置中)。但为了简单起见,假设我只有一个具有N 个可能值的参数。在循环中,我计算模型和与其相关的几个标量指标。
我想将数据[参数值,metric1,metric2,...]逐行保存到文件中。我不在乎什么类型:.pickle、.npz、.txt、.csv 或其他任何类型都可以。
我不想在计算完所有N个模型后保存数组。这里的问题是,有时参数值是如此非物理性,以至于我调用来计算模型的程序(这是一个经过多年开发的巨大复杂的东西,所以我没有触及它)使内核崩溃。如果我有N = 30000 个模型要做,而这种情况发生在29000处,我会非常不高兴并且浪费了很多时间。我可能还必须注意内存使用情况 - 我已经弄清楚如何使用文本文件执行我建议的操作,但它在大约2600行时崩溃,因为我认为它不喜欢打开那么长的文本文件。
所以,一些伪代码:
filename = 'outFile.extension'
dataArray = np.zeros([N,3])
idx = 0
for p in Parameter1:
modelOutputVector = calculateModel(p)
metric1, metric2 = getMetrics(modelOutputVector)
dataArray[idx,0] = p
dataArray[idx,1] = metric1
dataArray[idx,2] = metric2
### Line that saves data here
idx+=1
Run Code Online (Sandbox Code Playgroud)
我偏爱 npz 或 pickle 格式,但不知道如何用这两种格式来做到这一点。如果有更好的格式或更好的解决方案,我很感激任何建议。
编辑:我试图在循环内创建一个文本文件是这样的:
fileObject = open(filename, 'ab')
np.savetxt(fileObject, rowOfData, delimiter = ',', newline = ' ') …Run Code Online (Sandbox Code Playgroud) 我想从一个文件夹中读取几个输入文件,执行一些转换,即时创建文件夹,并将csv写入相应的文件夹。这里的重点是我有像
“输入文件\ P1_set1 \ Set1_Folder_1_File_1_Hour09.csv”-单个患者(此文件包含第9小时的患者(P1)读数)
同样,每个患者有多个文件,每个患者文件被分组在每个文件夹下,如下所示
因此,要读取每个文件,我正在使用通配符正则表达式,如下代码所示
我已经尝试使用glob包,并且能够成功读取它,但是在创建输出文件夹和保存文件时遇到问题。我正在解析文件字符串,如下所示
f =“输入文件\ P1_set1 \ Set1_Folder_1_File_1_Hour09.csv”
f [12:] =“ P1_set1 \ Set1_Folder_1_File_1_Hour09.csv”
filenames = sorted(glob.glob('Input files\P*_set1\*.csv'))
for f in filenames:
print(f) #This will print the full path
print(f[12:]) # This print the folder structure along with filename
df_transform = pd.read_csv(f)
df_transform = df_transform.drop(['Format 10','Time','Hour'],axis=1)
df_transform.to_csv("Output\" + str(f[12:]),index=False)
Run Code Online (Sandbox Code Playgroud)
我希望输出文件夹中包含csv文件,这些文件按每位患者的各自文件夹分组。下面的屏幕截图显示了转换后的文件应如何排列在输出文件夹(与输入文件夹相同的结构)中。请注意,“输出”文件夹已经存在(很容易创建一个您知道的文件夹)
